# Count numbers whose XOR with N is equal to OR with N

Given a number N, the task is to find the count of X such that N XOR X == N OR X, where 0<=X<=N

Examples:

Input: N = 5
Output: 2
For N = 5,
5 XOR 2 == 5 OR 2
5 XOR 0 == 5 OR 0
Thus, count is 2.

Input: N = 7
Output: 1
For N = 7,
7 XOR 0 == 7 OR 0
Thus, count is 1.

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

Approach: The idea is to convert given number to binary and then count the unset bits in it. 2^count gives us the number of X such that N XOR X == N OR X.

Below is the implementation of the above approach:

 `// C++ program to find  ` `// the XOR equals OR count  ` `#include ` `#include ` `using` `namespace` `std;  ` ` `  `class` `gfg {  ` `     `  `    ``// Function to calculate count  ` `    ``// of numbers with XOR equals OR  ` `    ``public``: ` `    ``int` `xorEqualsOrCount(``int` `N)  ` `    ``{  ` `         `  `        ``// variable to store count of unset bits  ` `        ``int` `count = 0;  ` `        ``int` `bit;  ` `        ``while` `(N > 0) {  ` `             `  `            ``bit = N % 2;  ` `            ``if` `(bit == 0)  ` `                ``count++;  ` `            ``N = N / 2;  ` `        ``}  ` `        ``return` `(``int``)``pow``(2, count);  ` `    ``} }; ` ` `  `    ``// Driver code  ` `    ``int` `main()  ` `    ``{  ` `        ``gfg g ; ` `        ``int` `N = 7;  ` `        ``cout<

 `// Java program to find the XOR equals OR count ` `import` `java.io.*; ` `import` `java.util.*; ` ` `  `class` `GFG { ` ` `  `    ``// Function to calculate count of numbers with XOR equals OR ` `    ``static` `int` `xorEqualsOrCount(``int` `N) ` `    ``{ ` `        ``// variable to store count of unset bits ` `        ``int` `count = ``0``; ` `        ``int` `bit; ` `        ``while` `(N > ``0``) { ` `            ``bit = N % ``2``; ` `            ``if` `(bit == ``0``) ` `                ``count++; ` `            ``N = N / ``2``; ` `        ``} ` `        ``return` `(``int``)Math.pow(``2``, count); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `N = ``7``; ` `        ``System.out.println(xorEqualsOrCount(N)); ` `    ``} ` `} `

 `# Python3 program to find ` `# the XOR equals OR count ` ` `  `# Function to calculate count ` `# of numbers with XOR equals OR ` `def` `xorEqualsOrCount(N) : ` ` `  `    ``# variable to store ` `    ``# count of unset bits ` `    ``count ``=` `0` ` `  `    ``while``(N > ``0``) : ` ` `  `        ``bit ``=` `N ``%` `2` ` `  `        ``if` `bit ``=``=` `0` `: ` `            ``count ``+``=` `1` ` `  `        ``N ``/``/``=` `2` ` `  `    ``return` `int``(``pow``(``2``, count)) ` ` `  `# Driver code      ` `if` `__name__ ``=``=` `"__main__"` `: ` ` `  `    ``N ``=` `7` `    ``print``(xorEqualsOrCount(N)) ` `                 `  `# This code is contributed by  ` `# ANKITRAI1 `

 `// C# program to find  ` `// the XOR equals OR count ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``// Function to calculate count  ` `    ``// of numbers with XOR equals OR ` `    ``static` `int` `xorEqualsOrCount(``int` `N) ` `    ``{ ` `         `  `        ``// variable to store count of unset bits ` `        ``int` `count = 0; ` `        ``int` `bit; ` `        ``while` `(N > 0) { ` `             `  `            ``bit = N % 2; ` `            ``if` `(bit == 0) ` `                ``count++; ` `            ``N = N / 2; ` `        ``} ` `        ``return` `(``int``)Math.Pow(2, count); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `N = 7; ` `        ``Console.WriteLine(xorEqualsOrCount(N)); ` `    ``} ` `} ` ` `  `// This code is contributed by inder_verma.. `

 ` 0)  ` `    ``{  ` `        ``\$bit` `= ``\$N` `% 2;  ` `        ``if` `(``\$bit` `== 0)  ` `            ``\$count``++;  ` `        ``\$N` `= ``intval``(``\$N` `/ 2);  ` `    ``}  ` `    ``return` `pow(2, ``\$count``);  ` `}  ` ` `  `// Driver code  ` `\$N` `= 7;  ` `echo` `xorEqualsOrCount(``\$N``); ` ` `  `// This code is contributed ` `// by ChitraNayal ` `?> `

Output:
```1
```

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Practice Tags :