Skip to content
Related Articles

Related Articles

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

View Discussion
Improve Article
Save Article
  • Difficulty Level : Basic
  • Last Updated : 15 Jul, 2022
View Discussion
Improve Article
Save Article

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 <iostream>
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




<?php
// PHP program to check if 
// two numbers are equal 
// without using arithmetic 
// and comparison operators
  
// Function to check if two
// numbers are equal using 
// XOR operator
function areSame($a, $b)
{
if ($a ^ $b
echo "Not Same"
else
echo "Same";
}
  
// Driver Code
  
// Calling function
areSame(10, 20);
  
// This code is contributed
// by nitin mittal.
?>

Javascript




<script>
  
// Javascript program to check if two numbers
// are equal without using arithmetic and 
// comparison operators   
  
// Function to check if two
// numbers are equal using
// XOR operator
function areSame(a, b)
{
    if ((a ^ b) != 0)
        document.write("Not Same");
    else
        document.write("Same");
}
  
// Driver Code
areSame(10, 20);
  
// This code is contributed by shikhasingrajput 
  
</script>

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 <iostream>
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




<?php
// PHP 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.
function areSame($a, $b)
{
    if (($a & ~$b)==0 && (~$a & $b)==0) 
        echo "Same"
    else
        echo "Not Same";
}
  
// Driver Code
// Calling function
areSame(10, 20);
  
// This code is contributed by ita_c
?>

Javascript




<script>
  
// Javascript 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.
function areSame(a, b)
{
    if ((a & ~b) == 0 && (~a & b) == 0)
        document.write("Same");
    else
        document.write("Not Same");
}
  
// Driver Code
  
// Calling function
areSame(10, 20);
  
// This code is contributed by gauravrajput1 
  
</script>

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/
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!