Count ways to express a number as sum of exactly two numbers
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
Please Login to comment...