Given a positive integer N. The task is to find the number of ways in which you can express N as a sum of exactly two numbers A and B (N = A + B) where A > 0, B > 0 and B > A.
Examples:
Input: N = 8 Output: 3 Explanation: N = 8 can be expressed as (1, 7), (2, 6), (3, 5) Input: N = 14 Output: 6
Approach:
- An observation here is that for every number N, if we take a number A which is less than N/2, then there must be a number B which is greater than N/2 and A + B = N.
- This leads to a simple solution of finding the count of numbers for either B or A. Hence, the floor value of (N-1)/2 will lead to the solution.
C++
// C++ program to Count ways to // express a number as sum of // two numbers. #include <bits/stdc++.h> using namespace std;
// Function returns the count // of ways express a number // as sum of two numbers. int CountWays( int n)
{ int ans = (n - 1) / 2;
return ans;
} // Driver code int main()
{ int N = 8;
cout << CountWays(N);
} |
Java
// Java program to count ways to // express a number as sum of // two numbers. class GFG{
// Function returns the count // of ways express a number // as sum of two numbers. static int CountWays( int n)
{ int ans = (n - 1 ) / 2 ;
return ans;
} // Driver code public static void main(String[] args)
{ int N = 8 ;
System.out.print(CountWays(N));
} } // This code is contributed by Rajput-Ji |
Python3
# Python3 program to Count ways to # express a number as sum of # two numbers. # Function returns the count # of ways express a number # as sum of two numbers. def CountWays(n) :
ans = (n - 1 ) / / 2
return ans
# Driver code N = 8
print (CountWays(N))
# This code is contributed by Sanjit_Prasad |
C#
// C# program to count ways to // express a number as sum of // two numbers. using System;
class GFG{
// Function returns the count // of ways express a number // as sum of two numbers. static int CountWays( int n)
{ int ans = (n - 1) / 2;
return ans;
} // Driver code public static void Main()
{ int N = 8;
Console.Write(CountWays(N));
} } // This code is contributed by Code_Mech |
Javascript
<script> // Javascript program to count ways to // express a number as sum of // two numbers. // Function returns the count // of ways express a number // as sum of two numbers. function CountWays(n)
{ let ans = Math.floor((n - 1) / 2);
return ans;
} // Driver Code let N = 8;
document.write(CountWays(N));
</script> |
Output:
3
Time complexity: O(1)
Auxiliary space: O(1) because it is using constant space for variable
Article Tags :
Recommended Articles