Skip to content
Related Articles

Related Articles

Check if two numbers are equal without using arithmetic and comparison operators
  • Difficulty Level : Basic
  • Last Updated : 07 Apr, 2021

Following are not allowed to use 
1) Arithmetic and Comparison Operators 
2) String functions

Method 1 : The idea is to use XOR operator. XOR of two numbers is 0 if the numbers are 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

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 && (~a & b) == 0)
        cout << "Same";
    else
        cout << "Not 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
    // 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(1, 1);
 
// 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
 

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 :