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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 ``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