Skip to content
Related Articles

Related Articles

Check if a number has two adjacent set bits
  • Difficulty Level : Easy
  • Last Updated : 03 May, 2021

Given a number you have to check whether there is pair of adjacent set bit or not.
Examples : 
 

Input : N = 67
Output : Yes
There is a pair of adjacent set bit
The binary representation is 100011

Input : N = 5
Output : No

 

A simple solution is to traverse all bits. For every set bit, check if next bit is also set.
An efficient solution is to shift number by 1 and then do bitwise AND. If bitwise AND is non-zero then there are two adjacent set bits. Else not. 
 

C++




// CPP program to check
// if there are two
// adjacent set bits.
#include <iostream>
using namespace std;
 
bool adjacentSet(int n)
{
    return (n & (n >> 1));
}
 
// Driver Code
int main()
{
    int n = 3;
    adjacentSet(n) ?
     cout << "Yes" :
       cout << "No";
    return 0;
}

Java




// Java program to check
// if there are two
// adjacent set bits.
class GFG
{
     
    static boolean adjacentSet(int n)
    {
        int x = (n & (n >> 1));
         
        if(x > 0)
            return true;
        else
            return false;
    }
     
    // Driver code
    public static void main(String args[])
    {
 
        int n = 3;
         
        if(adjacentSet(n))
            System.out.println("Yes");
        else
            System.out.println("No");
 
    }
}
 
// This code is contributed by Sam007.

Python3




# Python 3 program to check if there
# are two adjacent set bits.
 
def adjacentSet(n):
    return (n & (n >> 1))
 
# Driver Code
if __name__ == '__main__':
    n = 3
    if (adjacentSet(n)):
        print("Yes")
    else:
        print("No")
         
# This code is contributed by
# Shashank_Sharma

C#




// C# program to check
// if there are two
// adjacent set bits.
using System;
 
class GFG
{
    static bool adjacentSet(int n)
    {
        int x = (n & (n >> 1));
         
        if(x > 0)
            return true;
        else
            return false;
    }
     
    // Driver code
    public static void Main ()
    {
        int n = 3;
         
        if(adjacentSet(n))
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
         
}
 
// This code is contributed by Sam007.

php




<?php
// PHP program to check
// if there are two
// adjacent set bits.
 
function adjacentSet($n)
{
    return ($n & ($n >> 1));
}
 
// Driver Code
$n = 3;
adjacentSet($n) ?
   print("Yes") :
     print("No");
 
// This code is contributed by Sam007.
?>

Javascript




<script>
 
// Javascript program to check
// if there are two
// adjacent set bits.
  
function adjacentSet(n)
    {
        let x = (n & (n >> 1));
         
        if(x > 0)
            return true;
        else
            return false;
    }
 
// driver program
 
           let n = 3;
         
        if(adjacentSet(n))
            document.write("Yes");
        else
            document.write("No");
         
</script>

Output :  

Yes

 

This article is contributed by Pranav. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
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 :