Count pairs with Bitwise XOR as ODD number
Last Updated :
02 Sep, 2022
Given an array of N integers, the task is to find the number of pairs (i, j) such that A[i] ^ A[j] is odd.
Examples:
Input : N = 5
A[] = { 5, 4, 7, 2, 1}
Output :6
Since pair of A[] =
( 5, 4 ) = 1( 5, 7 ) = 2( 5, 2 ) = 7( 5, 1 ) = 4
( 4, 7 ) = 3( 4, 2 ) = 6( 4, 1 ) = 5
( 7, 2 ) = 5( 7, 1 ) = 6
( 2, 1 ) = 3
Total XOR ODD pair = 6
Input : N = 7
A[] = { 7, 2, 8, 1, 0, 5, 11 }
Output :12
Since pair of A[] =
( 7, 2 ) = 5( 7, 8 ) = 15( 7, 1 ) = 6( 7, 0 ) = 7( 7, 5 ) = 2( 7, 11 ) = 12
( 2, 8 ) = 10( 2, 1 ) = 3( 2, 0 ) = 2( 2, 5 ) = 7( 2, 11 ) = 9
( 8, 1 ) = 9( 8, 0 ) = 8( 8, 5 ) = 13( 8, 11 ) = 3
( 1, 0 ) = 1( 1, 5 ) = 4( 1, 11 ) = 10
( 0, 5 ) = 5( 0, 11 ) = 11
( 5, 11 ) = 14
A naive approach is to check for every pair and print the count of pairs.
Below is the implementation of the above approach:
C++
// C++ program to count pairs
// with XOR giving a odd number
#include <iostream>
using namespace std;
// Function to count number of odd pairs
int findOddPair(int A[], int N)
{
int i, j;
// variable for counting odd pairs
int oddPair = 0;
// find all pairs
for (i = 0; i < N; i++) {
for (j = i + 1; j < N; j++) {
// find XOR operation
// check odd or even
if ((A[i] ^ A[j]) % 2 != 0)
oddPair++;
}
cout << endl;
}
// return number of odd pair
return oddPair;
}
// Driver Code
int main()
{
int A[] = { 5, 4, 7, 2, 1 };
int N = sizeof(A) / sizeof(A[0]);
// calling function findOddPair
// and print number of odd pair
cout << findOddPair(A, N) << endl;
return 0;
}
Java
// Java program to count pairs
// with XOR giving a odd number
class GFG
{
// Function to count
// number of odd pairs
static int findOddPair(int A[],
int N)
{
int i, j;
// variable for counting
// odd pairs
int oddPair = 0;
// find all pairs
for (i = 0; i < N; i++)
{
for (j = i + 1; j < N; j++)
{
// find XOR operation
// check odd or even
if ((A[i] ^ A[j]) % 2 != 0)
oddPair++;
}
}
// return number
// of odd pair
return oddPair;
}
// Driver Code
public static void main(String args[])
{
int A[] = { 5, 4, 7, 2, 1 };
int N = A.length;
// calling function findOddPair
// and print number of odd pair
System.out.println(findOddPair(A, N));
}
}
// This code is contributed
// by Kirti_Mangal
Python3
# Python3 program to count pairs
# with XOR giving a odd number
# Function to count number of odd pairs
def findOddPair(A, N) :
# variable for counting odd pairs
oddPair = 0
# find all pairs
for i in range(0, N) :
for j in range(i+1, N) :
# find XOR operation
# check odd or even
if ((A[i] ^ A[j]) % 2 != 0):
oddPair+=1
# return number of odd pair
return oddPair
# Driver Code
if __name__=='__main__':
A = [5, 4, 7, 2, 1 ]
N = len(A)
# calling function findOddPair
# and print number of odd pair
print(findOddPair(A, N))
# This code is contributed by Smitha Dinesh Semwal
C#
// C# program to count pairs
// with XOR giving a odd number
using System;
class GFG
{
// Function to count
// number of odd pairs
static int findOddPair(int[] A,
int N)
{
int i, j;
// variable for counting
// odd pairs
int oddPair = 0;
// find all pairs
for (i = 0; i < N; i++)
{
for (j = i + 1; j < N; j++)
{
// find XOR operation
// check odd or even
if ((A[i] ^ A[j]) % 2 != 0)
oddPair++;
}
}
// return number
// of odd pair
return oddPair;
}
// Driver Code
public static void Main()
{
int[] A = { 5, 4, 7, 2, 1 };
int N = A.Length;
// calling function findOddPair
// and print number of odd pair
Console.WriteLine(findOddPair(A, N));
}
}
// This code is contributed
// by Akanksha Rai(Abby_akku)
# calling function findOddPair
# and print number of odd pair
print(findOddPair(a, n))
PHP
<?php
//PHP program to count pairs
// with XOR giving a odd number
// Function to count number of odd pairs
function findOddPair($A, $N)
{
$i; $j;
// variable for counting odd pairs
$oddPair = 0;
// find all pairs
for ($i = 0; $i < $N; $i++) {
for ($j = $i + 1; $j < $N; $j++) {
// find XOR operation
// check odd or even
if (($A[$i] ^ $A[$j]) % 2 != 0)
$oddPair++;
}
}
// return number of odd pair
return $oddPair;
}
// Driver Code
$A = array( 5, 4, 7, 2, 1 );
$N = sizeof($A) / sizeof($A[0]);
// calling function findOddPair
// and print number of odd pair
echo findOddPair($A, $N),"\n";
// This Code is Contributed by ajit
?>
JavaScript
<script>
// JavaScript program to count pairs
// with XOR giving a odd number
// Function to count number of odd pairs
function findOddPair(A, N)
{
let i, j;
// variable for counting odd pairs
let oddPair = 0;
// find all pairs
for (i = 0; i < N; i++) {
for (j = i + 1; j < N; j++) {
// find XOR operation
// check odd or even
if ((A[i] ^ A[j]) % 2 != 0)
oddPair++;
}
}
// return number of odd pair
return oddPair;
}
// Driver Code
let A = [ 5, 4, 7, 2, 1 ];
let N = A.length;
// calling function findOddPair
// and print number of odd pair
document.write(findOddPair(A, N) + "<br>");
// This code is contributed by Surbhi Tyagi.
</script>
OUTPUT:
6
Time Complexity: O(N^2) as two nested loops are being used.
Auxiliary Space: O(1), as constant space is being used by the algorithm.
An efficient solution is to count the even numbers. Then return count * (N - count).
C++
// C++ program to count pairs
// with XOR giving a odd number
#include <iostream>
using namespace std;
// Function to count number of odd pairs
int findOddPair(int A[], int N)
{
int i, count = 0;
// find all pairs
for (i = 0; i < N; i++) {
if (A[i] % 2 == 0)
count++;
}
// return number of odd pair
return count * (N - count);
}
// Driver Code
int main()
{
int a[] = { 5, 4, 7, 2, 1 };
int n = sizeof(a) / sizeof(a[0]);
// calling function findOddPair
// and print number of odd pair
cout << findOddPair(a, n) << endl;
return 0;
}
Java
// Java program to count pairs
// with XOR giving a odd number
class GFG
{
// Function to count
// number of odd pairs
static int findOddPair(int A[],
int N)
{
int i, count = 0;
// find all pairs
for (i = 0; i < N; i++)
{
if (A[i] % 2 == 0)
count++;
}
// return number of odd pair
return count * (N - count);
}
// Driver Code
public static void main(String[] arg)
{
int a[] = { 5, 4, 7, 2, 1 };
int n = a.length ;
// calling function findOddPair
// and print number of odd pair
System.out.println(findOddPair(a, n));
}
}
// This code is contributed
// by Smitha
Python3
# Python3 program to count pairs
# with XOR giving a odd number
# Function to count number of odd pairs
def findOddPair(A, N) :
count = 0
# find all pairs
for i in range(0 , N) :
if (A[i] % 2 == 0) :
count+=1
# return number of odd pair
return count * (N - count)
# Driver Code
if __name__=='__main__':
a = [5, 4, 7, 2, 1]
n = len(a)
print(findOddPair(a,n))
# this code is contributed by Smitha Dinesh Semwal
C#
// C# program to count pairs
// with XOR giving a odd number
using System;
class GFG
{
// Function to count
// number of odd pairs
static int findOddPair(int []A,
int N)
{
int i, count = 0;
// find all pairs
for (i = 0; i < N; i++)
{
if (A[i] % 2 == 0)
count++;
}
// return number of odd pair
return count * (N - count);
}
// Driver Code
public static void Main()
{
int []a = { 5, 4, 7, 2, 1 };
int n = a.Length ;
// calling function findOddPair
// and print number of odd pair
Console.Write(findOddPair(a, n));
}
}
// This code is contributed
// by Smitha
PHP
<?php
// PHP program to count pairs
// with XOR giving a odd number
// Function to count number
// of odd pairs
function findOddPair($A, $N)
{
$count = 0;
// find all pairs
for ($i = 0; $i < $N; $i++)
{
if ($A[$i] % 2 == 0)
$count++;
}
// return number of odd pair
return $count * ($N - $count);
}
// Driver Code
$a = array( 5, 4, 7, 2, 1 );
$n = count($a);
// calling function findOddPair
// and print number of odd pair
echo( findOddPair($a, $n));
// This code is contributed
// by Smitha
?>
JavaScript
<script>
// Javascript program to count pairs
// with XOR giving a odd number
// Function to count number of odd pairs
function findOddPair(A, N)
{
let i, count = 0;
// find all pairs
for (i = 0; i < N; i++) {
if (A[i] % 2 == 0)
count++;
}
// return number of odd pair
return count * (N - count);
}
// Driver Code
let a = [ 5, 4, 7, 2, 1 ];
let n = a.length;
// calling function findOddPair
// and print number of odd pair
document.write(findOddPair(a, n));
</script>
Output:
6
Time Complexity: O(N), since one traversal of the array is required to complete all operations.
Auxiliary Space: O(1), as constant space is being used.
Similar Reads
Count pairs with Bitwise AND as ODD number
Given an array of N integers. The task is to find the number of pairs (i, j) such that A[i] & A[j] is odd.Examples: Input: N = 4 A[] = { 5, 1, 3, 2 } Output: 3 Since pair of A[] = ( 5, 1 ), ( 5, 3 ), ( 5, 2 ), ( 1, 3 ), ( 1, 2 ), ( 3, 2 ) 5 AND 1 = 1, 5 AND 3 = 1, 5 AND 2 = 0, 1 AND 3 = 1, 1 AND
9 min read
Count pairs with Bitwise XOR as EVEN number
Given an array of N integers, the task is to find the number of pairs (i, j) such that A[i] ^ A[j] is even. Examples: Input: A[] = { 5, 4, 7, 2, 1} Output: 4 Since pair of A[] = ( 5, 4 ) = 1( 5, 7 ) = 2( 5, 2 ) = 7( 5, 1 ) = 4 ( 4, 7 ) = 3( 4, 2 ) = 6( 4, 1 ) = 5 ( 7, 2 ) = 5( 7, 1 ) = 6 ( 2, 1 ) =
11 min read
Count pairs with Bitwise OR as Even number
Given an array A[] of size N. The task is to find the how many pair(i, j) exists such that A[i] OR A[j] is even. Examples: Input : N = 4 A[] = { 5, 6, 2, 8 } Output :3 Explanation : Since pair of A[] = ( 5, 6 ), ( 5, 2 ), ( 5, 8 ), ( 6, 2 ), ( 6, 8 ), ( 2, 8 ) 5 OR 6 = 7, 5 OR 2 = 7, 5 OR 8 = 13 6 O
7 min read
Count pairs with Bitwise-AND as even number
Given an array of N integers. The task is to find the number of pairs (i, j) such that A[i] & A[j] is even. Examples: Input: N = 4, A[] = { 5, 1, 3, 2 } Output: 3 Since pair of A[] are: ( 5, 1 ), ( 5, 3 ), ( 5, 2 ), ( 1, 3 ), ( 1, 2 ), ( 3, 2 ) 5 AND 1 = 1, 5 AND 3 = 1, 5 AND 2 = 0, 1 AND 3 = 1,
13 min read
Number of pairs with Bitwise OR as Odd number
Given an array A[] of size N. The task is to find how many pair(i, j) exists such that A[i] OR A[j] is odd.Examples: Input : N = 4 A[] = { 5, 6, 2, 8 } Output : 3 Explanation : Since pair of A[] = ( 5, 6 ), ( 5, 2 ), ( 5, 8 ), ( 6, 2 ), ( 6, 8 ), ( 2, 8 ) 5 OR 6 = 7, 5 OR 2 = 7, 5 OR 8 = 13 6 OR 2 =
9 min read
Count pairs with Odd XOR
Given an array of n integers. Find out number of pairs in array whose XOR is odd. Examples : Input : arr[] = { 1, 2, 3 } Output : 2 All pairs of array 1 ^ 2 = 3 1 ^ 3 = 2 2 ^ 3 = 1 Input : arr[] = { 1, 2, 3, 4 } Output : 4Recommended PracticeCount Pairs Odd XorTry It! Naive Approach: We can find pai
8 min read
Count Number of Pairs where Bitwise AND and Bitwise XOR is Equal
Given an integer array arr of size N, the task is to count the number of pairs whose BITWISE AND and BITWISE XOR are equal. Example: Input: N = 3, arr[] = {0,0,1}Output: 1Explanation: There is only one pair arr[0] and arr[1] as 0&0=0 and 0^0=0 Input: N = 4, arr[] = {1, 2, 4, 8}Output: 0Explanati
4 min read
Count unset bits of a number
Given a number n, count unset bits after MSB (Most Significant Bit).Examples : Input : 17 Output : 3 Binary of 17 is 10001 so unset bit is 3 Input : 7 Output : 0 A Simple Solution is to traverse through all bits and count unset bits. C++ // C++ program to count unset bits in an integer #include <
7 min read
Count subarrays having odd Bitwise XOR
Given an array arr[] of size N, the task is to count the number of subarrays from the given array having odd Bitwise XOR value. Examples: Input: arr[] = {1, 4, 7, 9, 10}Output: 8Explanation: The subarrays having odd Bitwise XOR are {1}, {1, 4}, {1, 4, 7, 9}, {1, 4, 7, 9, 10}, {7}, {9}, {4, 7}, {9, 1
11 min read
Bitwise AND and XOR pair counting
Given an integer array arr[] of size N, the task is to count the number of pairs whose BITWISE AND and BITWISE XOR are equal. Examples: Input: N = 3, arr[] = [0, 0, 1]Output: 1Explanation: All possible pairs from the array are pair = [(0, 0), (0, 1), (1, 0)]. we can see that pair = (0, 0), 0&0 =
7 min read