# Count even sum pairs possible by selecting two integers from two given ranges respectively

• Last Updated : 16 Apr, 2021

Given two positive integers X and Y, the task is to count pairs with even sum possible by choosing any integer from the range 1 to X and another integer from the range 1 to Y.

Examples:

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.

Input : X = 2, Y = 3
Output :
Explanation : All such possible pairs are {1, 1}, {1, 3}, {2, 2}.

Approach: Follow the steps below to solve the problem:

• Initialize a variable, say cntXEvenNums, to store the count of even numbers in the range [1, X] obtained by dividing X by 2.
• Initialize a variable, say cntXOddNums, to store the count of odd numbers in the range [1, X] obtained by dividing (X + 1) by 2.
• Initialize a variable, say cntYEvenNums, to store the count of even numbers between 1 to Y by dividing Y by 2.
• Initialize a variable, say cntYOddNums, to store the count of odd numbers between 1 to Y by dividing (Y + 1) by 2.
• Initialize a variable, say cntPairs, to store the count of even sum pairs by multiplying cntXEvenNums with cntYEvenNums and multiplying cntXOddNums with cntYOddNums and find the sum of both.
• Finally, print the value of cntPairs obtained.

Below is the implementation of the above approach:

## C++

 `// C++ program to implement``// the above approach` `#include ``using` `namespace` `std;` `// Function to count even``// sum pairs in the given range``long` `long` `cntEvenSumPairs(``long` `long` `X, ``long` `long` `Y)``{``    ``// Stores the count of even``    ``// numbers between 1 to X``    ``long` `long` `cntXEvenNums = X / 2;` `    ``// Stores the count of odd``    ``// numbers between 1 to X``    ``long` `long` `cntXOddNums = (X + 1) / 2;` `    ``// Stores the count of even``    ``// numbers between 1 to Y``    ``long` `long` `cntYEvenNums = Y / 2;` `    ``// Stores the count of odd``    ``// numbers between 1 to Y``    ``long` `long` `cntYOddNums = (Y + 1) / 2;` `    ``// Stores the count of``    ``// pairs having even sum``    ``long` `long` `cntPairs``        ``= (cntXEvenNums * 1LL * cntYEvenNums)``          ``+ (cntXOddNums * 1LL * cntYOddNums);` `    ``// Retuens the count of pairs``    ``// having even sum``    ``return` `cntPairs;``}` `// Driver Code``int` `main()``{``    ``long` `long` `X = 2;``    ``long` `long` `Y = 3;` `    ``cout << cntEvenSumPairs(X, Y);``    ``return` `0;``}`

## Java

 `// Java program to implement``// the above approach` `import` `java.io.*;` `class` `GFG {` `    ``// Function to count maximum  even``    ``// sum pairs in the given range``    ``static` `long` `cntEvenSumPairs(``long` `X, ``long` `Y)``    ``{` `        ``// Stores the count of even``        ``// numbers between 1 to X``        ``long` `cntXEvenNums = X / ``2``;` `        ``// Stores the count of odd``        ``// numbers between 1 to X``        ``long` `cntXOddNums = (X + ``1``) / ``2``;` `        ``// Stores the count of even``        ``// numbers between 1 to Y``        ``long` `cntYEvenNums = Y / ``2``;` `        ``// Stores the count of odd``        ``// numbers between 1 to Y``        ``long` `cntYOddNums = (Y + ``1``) / ``2``;` `        ``// Stores the count of``        ``// pairs having even sum``        ``long` `cntPairs = (cntXEvenNums * cntYEvenNums)``                        ``+ (cntXOddNums * cntYOddNums);` `        ``// Retuens the count of pairs``        ``// having even sum``        ``return` `cntPairs;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``long` `X = ``2``;``        ``long` `Y = ``3``;` `        ``System.out.println(cntEvenSumPairs(X, Y));``    ``}``}`

## Python

 `# Python program to implement``# the above approach` `# Function to count even``# sum pairs in the given range``def` `cntEvenSumPairs(X, Y):``    ` `    ``# Stores the count of even``    ``# numbers between 1 to X``    ``cntXEvenNums ``=` `X ``/` `2` `    ``# Stores the count of odd``    ``# numbers between 1 to X``    ``cntXOddNums ``=` `(X ``+` `1``) ``/` `2` `    ``# Stores the count of even``    ``# numbers between 1 to Y``    ``cntYEvenNums ``=` `Y ``/` `2` `    ``# Stores the count of odd``    ``# numbers between 1 to Y``    ``cntYOddNums ``=` `(Y ``+` `1``) ``/` `2` `    ``# Stores the count of``    ``# pairs having even sum``    ``cntPairs ``=` `((cntXEvenNums ``*` `cntYEvenNums) ``+``                 ``(cntXOddNums ``*` `cntYOddNums))`` ` `    ``# Returns the count of pairs``    ``# having even sum``    ``return` `cntPairs` `# Driver code``X ``=` `2``Y ``=` `3` `print``(cntEvenSumPairs(X, Y))` `# This code is contributed by hemanth gadarla`

## C#

 `// C# program to implement``// the above approach``using` `System;` `class` `GFG{` `// Function to count maximum  even``// sum pairs in the given range``static` `long` `cntEvenSumPairs(``long` `X, ``long` `Y)``{``    ` `    ``// Stores the count of even``    ``// numbers between 1 to X``    ``long` `cntXEvenNums = X / 2;` `    ``// Stores the count of odd``    ``// numbers between 1 to X``    ``long` `cntXOddNums = (X + 1) / 2;` `    ``// Stores the count of even``    ``// numbers between 1 to Y``    ``long` `cntYEvenNums = Y / 2;` `    ``// Stores the count of odd``    ``// numbers between 1 to Y``    ``long` `cntYOddNums = (Y + 1) / 2;` `    ``// Stores the count of``    ``// pairs having even sum``    ``long` `cntPairs = (cntXEvenNums * cntYEvenNums) +``                     ``(cntXOddNums * cntYOddNums);` `    ``// Retuens the count of pairs``    ``// having even sum``    ``return` `cntPairs;``}` `// Driver Code``public` `static` `void` `Main(``string``[] args)``{``    ``long` `X = 2;``    ``long` `Y = 3;` `    ``Console.WriteLine(cntEvenSumPairs(X, Y));``}``}` `// This code is contributed by chitranayal`

## Javascript

 ``
Output:
`3`

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

My Personal Notes arrow_drop_up