 Open in App
Not now

# Number of ways to get even sum by choosing three numbers from 1 to N

• Last Updated : 23 Jul, 2022

Given an integer N, find the number of ways we can choose 3 numbers from {1, 2, 3 …, N} such that their sum is even.
Examples:

```Input :  N = 3
Output : 1
Explanation: Select 1, 2 and 3

Input :  N = 4
Output :  2
Either select (1, 2, 3) or (1, 3, 4)```

Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

To get sum even there can be only 2 cases:

1. Take 2 odd numbers and 1 even.
2. Take all even numbers.

```If n is even,
Count of odd numbers = n/2 and even = n/2.
Else
Count odd numbers = n/2 +1 and even = n/2.```

Case 1 – No. of ways will be : oddC2 * even.
Case 2 – No. of ways will be : evenC3.
So, total ways will be Case_1_result + Case_2_result.

## C++

 `// C++ program for above implementation``#include ``#define MOD 1000000007``using` `namespace` `std;` `// Function to count number of ways``int` `countWays(``int` `N)``{``    ``long` `long` `int` `count, odd = N / 2, even;``    ``if` `(N & 1)``        ``odd = N / 2 + 1;` `    ``even = N / 2;` `    ``// Case 1: 2 odds and 1 even``    ``count = (((odd * (odd - 1)) / 2) * even) % MOD;` `    ``// Case 2: 3 evens``    ``count = (count + ((even * (even - 1) *``                           ``(even - 2)) / 6)) % MOD;` `    ``return` `count;``}` `// Driver code``int` `main()``{``    ``int` `n = 10;``    ``cout << countWays(n) << endl;``    ``return` `0;``}`

## Java

 `// java program for above implementation``import` `java.io.*;` `class` `GFG {``    ` `    ``static` `long` `MOD = ``1000000007``;``    ` `    ``// Function to count number of ways``    ``static` `long` `countWays(``int` `N)``    ``{``        ``long` `count, odd = N / ``2``, even;``        ` `        ``if` `((N & ``1``) > ``0``)``            ``odd = N / ``2` `+ ``1``;``    ` `        ``even = N / ``2``;``    ` `        ``// Case 1: 2 odds and 1 even``        ``count = (((odd * (odd - ``1``)) / ``2``)``                          ``* even) % MOD;``    ` `        ``// Case 2: 3 evens``        ``count = (count + ((even * (even``                ``- ``1``) * (even - ``2``)) / ``6``))``                                  ``% MOD;``    ` `        ``return` `(``long``)count;``    ``}``    ` `    ``// Driver code``    ``static` `public` `void` `main (String[] args)``    ``{``        ``int` `n = ``10``;``        ` `        ``System.out.println(countWays(n));``    ``}``}` `// This code is contributed by vt_m.`

## Python3

 `# Python3 code for above implementation` `MOD ``=` `1000000007` `# Function to count number of ways``def` `countWays( N ):``    ``odd ``=` `N ``/` `2``    ``if` `N & ``1``:``        ``odd ``=` `N ``/` `2` `+` `1``    ``even ``=` `N ``/` `2``    ` `    ``# Case 1: 2 odds and 1 even``    ``count ``=` `(((odd ``*` `(odd ``-` `1``)) ``/` `2``) ``*` `even) ``%` `MOD` `    ``# Case 2: 3 evens``    ``count ``=` `(count ``+` `((even ``*` `(even ``-` `1``) ``*``            ``(even ``-` `2``)) ``/` `6``)) ``%` `MOD``    ``return` `count` `# Driver code``n ``=` `10``print``(``int``(countWays(n)))` `# This code is contributed by "Sharad_Bhardwaj"`

## C#

 `// C# program for above implementation``using` `System;` `public` `class` `GFG {``    ` `    ``static` `long` `MOD = 1000000007;``    ` `    ``// Function to count number of ways``    ``static` `long` `countWays(``int` `N)``    ``{``        ``long` `count, odd = N / 2, even;``        ` `        ``if` `((N & 1) > 0)``            ``odd = N / 2 + 1;``    ` `        ``even = N / 2;``    ` `        ``// Case 1: 2 odds and 1 even``        ``count = (((odd * (odd - 1)) / 2)``                            ``* even) % MOD;``    ` `        ``// Case 2: 3 evens``        ``count = (count + ((even * (even``                  ``- 1) * (even - 2)) / 6))``                                    ``% MOD;``    ` `        ``return` `(``long``)count;``    ``}``    ` `    ``// Driver code``    ``static` `public` `void` `Main ()``    ``{``        ``int` `n = 10;` `        ``Console.WriteLine(countWays(n));``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`60`

Time Complexity: O(1)
Auxiliary Space: O(1)

This article is contributed by Sahil Chhabra. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.