# 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 = 8Output:3Explanation:N = 8 can be expressed as (1, 7), (2, 6), (3, 5)Input:N = 14Output: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(N)