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:
Input : X = 2, Y = 3
Output : 3
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 <bits/stdc++.h> 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);
// Returns 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);
// Returns 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);
// Returns 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
<script> // Javascript program to implement // the above approach // Function to count maximum even
// sum pairs in the given range
function cntEvenSumPairs(X , Y) {
// Stores the count of even
// numbers between 1 to X
var cntXEvenNums = parseInt(X / 2);
// Stores the count of odd
// numbers between 1 to X
var cntXOddNums = parseInt((X + 1) / 2);
// Stores the count of even
// numbers between 1 to Y
var cntYEvenNums = parseInt(Y / 2);
// Stores the count of odd
// numbers between 1 to Y
var cntYOddNums =parseInt( (Y + 1) / 2);
// Stores the count of
// pairs having even sum
var cntPairs = (cntXEvenNums * cntYEvenNums) +
(cntXOddNums * cntYOddNums);
// Returns the count of pairs
// having even sum
return cntPairs;
}
// Driver Code
var X = 2;
var Y = 3;
document.write(cntEvenSumPairs(X, Y));
// This code contributed by Rajput-Ji </script> |
Output:
3
Time Complexity : O(1)
Auxiliary Space : O(1)