# Check if two numbers are equal without using arithmetic and comparison operators

• Difficulty Level : Basic
• Last Updated : 15 Jul, 2022

Given two numbers, the task is to check if two numbers are equal without using Arithmetic and Comparison Operators or String functions.

Method 1 : The idea is to use XOR operator. XOR of two numbers is 0 if the numbers are the same, otherwise non-zero.

## C++

 `// C++ program to check if two numbers ` `// are equal without using arithmetic ` `// and comparison operators ` `#include ` `using` `namespace` `std; ` ` `  `// Function to check if two ` `// numbers are equal using ` `// XOR operator ` `void` `areSame(``int` `a, ``int` `b) ` `{ ` `    ``if` `(a ^ b) ` `        ``cout << ``"Not Same"``; ` `    ``else` `        ``cout << ``"Same"``; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` ` `  `    ``// Calling function ` `    ``areSame(10, 20); ` `} `

## Java

 `// Java program to check if two numbers ` `// are equal without using arithmetic ` `// and comparison operators ` `class` `GFG { ` ` `  `    ``// Function to check if two ` `    ``// numbers are equal using ` `    ``// XOR operator ` `    ``static` `void` `areSame(``int` `a, ``int` `b) ` `    ``{ ` `        ``if` `((a ^ b) != ``0``) ` `            ``System.out.print(``"Not Same"``); ` `        ``else` `            ``System.out.print(``"Same"``); ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` ` `  `        ``// Calling function ` `        ``areSame(``10``, ``20``); ` `    ``} ` `} ` ` `  `// This code is contributed by Smitha `

## Python3

 `# Python3 program to check if two numbers ` `# are equal without using arithmetic ` `# and comparison operators ` ` `  `def` `areSame(a, b): ` ` `  `# Function to check if two ` `# numbers are equal using  ` `# XOR operator ` ` ``if` `((a ^ b) !``=` `0``): ` `    ``print``(``"Not Same"``)  ` ` ``else``: ` `    ``print``(``"Same"``) ` ` `  `# Driver Code ` ` `  `areSame(``10``, ``20``) ` ` `  `# This code is contributed by Smitha `

## C#

 `// C# program to check if two numbers ` `// are equal without using arithmetic ` `// and comparison operators ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``// Function to check if two ` `    ``// numbers are equal using ` `    ``// XOR operator ` `    ``static` `void` `areSame(``int` `a, ``int` `b) ` `    ``{ ` `        ``if` `((a ^ b) != 0) ` `            ``Console.Write(``"Not Same"``); ` `        ``else` `            ``Console.Write(``"Same"``); ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `Main(String[] args) ` `    ``{ ` ` `  `        ``// Calling function ` `        ``areSame(10, 20); ` `    ``} ` `} ` ` `  `// This code is contributed by Smitha `

## PHP

 ` `

## Javascript

 ` `

Output

`Not Same`

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

Method 2 : Here idea is using complement ( ~ ) and bit-wise ‘&’ operator.

## C++

 `// C++ program to check if two numbers ` `// are equal without using arithmetic ` `// and comparison operators ` `#include ` `using` `namespace` `std; ` ` `  `// Function to check if two ` `// numbers are equal using ` `// using ~ complement and & operator. ` `void` `areSame(``int` `a, ``int` `b) ` `{ ` `    ``if` `((a & ~b) == 0) ` `        ``cout << ``"Same"``; ` `    ``else` `        ``cout << ``"Not Same"``; ` `} ` `// Driver Code ` `int` `main() ` `{ ` ` `  `    ``// Calling function ` `    ``areSame(10, 20); ` `   `  `  ``// This Code is improved by Sonu Kumar Pandit ` `}`

## Java

 `// Java program to check if two numbers ` `// are equal without using arithmetic ` `// and comparison operators ` ` `  `class` `GFG { ` `    ``// Function to check if two ` `    ``// numbers are equal using ` `    ``// using ~ complement and & operator. ` `    ``static` `void` `areSame(``int` `a, ``int` `b) ` `    ``{ ` `        ``if` `((a & ~b) == ``0` `&& (~a & b) == ``0``) ` `            ``System.out.print(``"Same"``); ` `        ``else` `            ``System.out.print(``"Not Same"``); ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``// Calling function ` `        ``areSame(``10``, ``20``); ` `    ``} ` `} ` ` `  `// This code is contributed ` `// by Akanksha Rai`

## Python3

 `# Python3 program to check if two numbers ` `# are equal without using arithmetic ` `# and comparison operators ` ` `  `# Function to check if two ` `# numbers are equal using ` `# using ~ complement and & operator. ` ` `  ` `  `def` `areSame(a, b): ` `    ``if` `((a & ~b) ``=``=` `0` `and` `(~a & b) ``=``=` `0``): ` `        ``print``(``"Same"``) ` `    ``else``: ` `        ``print``(``"Not Same"``) ` ` `  ` `  `# Calling function ` `areSame(``10``, ``20``) ` ` `  `# This code is contributed by Rajput-Ji `

## C#

 `// C# program to check if two numbers ` `// are equal without using arithmetic ` `// and comparison operators ` `using` `System; ` ` `  `class` `GFG { ` `    ``// Function to check if two ` `    ``// numbers are equal using ` `    ``// using ~ complement and & operator. ` `    ``static` `void` `areSame(``int` `a, ``int` `b) ` `    ``{ ` `        ``if` `((a & ~b) == 0 && (~a & b) == 0) ` `            ``Console.Write(``"Same"``); ` `        ``else` `            ``Console.Write(``"Not Same"``); ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// Calling function ` `        ``areSame(10, 20); ` `    ``} ` `} ` ` `  `// This code is contributed ` `// by Akanksha Rai`

## PHP

 ``

## Javascript

 ``

Output

`Not Same`

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

Source: https://www.geeksforgeeks.org/count-of-n-digit-numbers-whose-sum-of-digits-equals-to-given-sum/