# 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 = 5Output: 2

For N = 5,

5 XOR 2 == 5 OR 2

5 XOR 0 == 5 OR 0

Thus, count is 2.Input: N = 7Output: 1

For N = 7,

7 XOR 0 == 7 OR 0

Thus, count is 1.

**Approach:** The idea is to convert a 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++

`// C++ program to find` `// the XOR equals OR count` `#include<iostream>` `#include<math.h>` `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<<g.xorEqualsOrCount(N);` ` ` `return` `0;` ` ` `}` `// This code is contributed by Soumik` |

## Java

`// 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

`# 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#

`// 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..` |

## PHP

`<?php` `// PHP program to find the XOR` `// equals OR count` ` ` `// Function to calculate count` `// of numbers with XOR equals OR` `function` `xorEqualsOrCount(` `$N` `)` `{` ` ` ` ` `// variable to store count` ` ` `// of unset bits` ` ` `$count` `= 0;` ` ` `while` `(` `$N` `> 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` `?>` |

## Javascript

`<script>` `// Javascript program to find` `// the XOR equals OR count` ` ` `// Function to calculate count` ` ` `// of numbers with XOR equals OR` ` ` `function` `xorEqualsOrCount(N)` ` ` `{` ` ` ` ` `// variable to store count of unset bits` ` ` `let count = 0;` ` ` `let bit;` ` ` `while` `(N > 0) {` ` ` ` ` `bit = N % 2;` ` ` `if` `(bit == 0)` ` ` `count++;` ` ` `N = parseInt(N / 2);` ` ` `}` ` ` `return` `Math.pow(2, count);` ` ` `}` ` ` `// Driver code` ` ` `let N = 7;` ` ` `document.write(xorEqualsOrCount(N));` `</script>` |

**Output:**

1