Skip to content
Related Articles

Related Articles

Count ways to express a number as sum of exactly two numbers
  • Difficulty Level : Basic
  • Last Updated : 05 Jun, 2020

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
Output:
3

Time complexity: O(N)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :