Open In App

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

Improve
Improve
Like Article
Like
Save
Share
Report

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 <bits/stdc++.h>
#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




<?php
// PHP program for 
// above implementation
  
$MOD = 1000000007;
  
// Function to count 
// number of ways
function countWays($N)
{
    global $MOD;
      
    $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
    $n = 10;
    echo countWays($n);
  
// This code is contributed by anuj_67.
?>


Javascript




<script>
  
// Javascript program for above implementation
let MOD = 1000000007;
        
    // Function to count number of ways
    function countWays(N)
    {
        let 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 count;
    }
      
// Driver code
        let n = 10;          
        document.write(countWays(n));
          
        // This code is contributed by code_hunt.
</script>


Output:

60

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

 



Last Updated : 18 Sep, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads