Skip to content
Related Articles

Related Articles

Check if the given decimal number has 0 and 1 digits only

View Discussion
Improve Article
Save Article
  • Difficulty Level : Hard
  • Last Updated : 25 Jun, 2022
View Discussion
Improve Article
Save Article

Given an integer n, the task is to check whether n is in binary or not. Print true if n is the binary representation else print false.

Examples: 

Input: n = 1000111 
Output: true

Input: n = 123 
Output: false 
 

Method #1: Using Set First add all the digits of n into a set after that remove 0 and 1 from the set, if the size of the set becomes 0 then the number is in binary format.

Below is the implementation of the above approach:  

C++




// C++ program to check whether the given number
// is in binary format
#include<bits/stdc++.h>
using namespace std;
    // Function that returns true if given number
    // is in binary format  i.e. number contains
    // only 0's and/or 1's
    bool isBinary(int number)
    {
        set<int> set;
  
        // Put all the digits of the number in the set
        while (number > 0) {
            int digit = number % 10;
            set.insert(digit);
            number /= 10;
        }
  
        // Since a HashSet does not allow duplicates so only
        // a single copy of '0' and '1' will be stored
        set.erase(0);
        set.erase(1);
  
        // If the original number only contained 0's and 1's
        // then size of the set must be 0
        if (set.size() == 0) {
            return true;
        }
        return false;
    }
  
    // Driver code
    int main()
    {
        int n = 1000111;
        if(isBinary(n)==1)
            cout<<"true"<<endl;
        else
            cout<<"No"<<endl;
    }
//contributed by Arnab Kundu

Java




// Java program to check whether the given number
// is in binary format
import java.util.HashSet;
import java.util.Set;
 
class GFG {
 
    // Function that returns true if given number
    // is in binary format  i.e. number contains
    // only 0's and/or 1's
    static boolean isBinary(int number)
    {
        Set<Integer> set = new HashSet<>();
 
        // Put all the digits of the number in the set
        while (number > 0) {
            int digit = number % 10;
            set.add(digit);
            number /= 10;
        }
 
        // Since a HashSet does not allow duplicates so only
        // a single copy of '0' and '1' will be stored
        set.remove(0);
        set.remove(1);
 
        // If the original number only contained 0's and 1's
        // then size of the set must be 0
        if (set.size() == 0) {
            return true;
        }
        return false;
    }
 
    // Driver code
    public static void main(String a[])
    {
        int n = 1000111;
        System.out.println(isBinary(n));
    }
}

Python3




# Python 3 program to check whether
# the given number is in binary format
 
# Function that returns true if given
# number is in binary format i.e. number
# contains only 0's and/or 1's
def isBinary(number):
    set1 = set()
 
    # Put all the digits of the
    # number in the set
    while(number > 0):
        digit = number % 10
        set1.add(digit)
        number = int(number / 10)
 
    # Since a HashSet does not allow
    # duplicates so only a single copy
    # of '0' and '1' will be stored
    set1.discard(0)
    set1.discard(1)
     
    # If the original number only
    # contained 0's and 1's then
    # size of the set must be 0
    if (len(set1) == 0):
        return True
 
    return False
     
# Driver code
if __name__ == '__main__':
    n = 1000111
    if(isBinary(n) == 1):
        print("true")
    else:
        print("No")
 
# This code is contributed by
# Surendra_Gangwar

C#




     
// C# program to check whether the given number
// is in binary format
using System;
using System.Collections.Generic;
public class GFG {
  
    // Function that returns true if given number
    // is in binary format  i.e. number contains
    // only 0's and/or 1's
    static bool isBinary(int number)
    {
        HashSet<int> set = new HashSet<int>();
  
        // Put all the digits of the number in the set
        while (number > 0) {
            int digit = number % 10;
            set.Add(digit);
            number /= 10;
        }
  
        // Since a HashSet does not allow duplicates so only
        // a single copy of '0' and '1' will be stored
        set.Remove(0);
        set.Remove(1);
  
        // If the original number only contained 0's and 1's
        // then size of the set must be 0
        if (set.Count == 0) {
            return true;
        }
        return false;
    }
  
    // Driver code
    public static void Main()
    {
        int n = 1000111;
        Console.WriteLine(isBinary(n));
    }
}
//This code is contributed by Rajput-Ji

Javascript




<script>
// Javascript program to check whether the given number
// is in binary format
     
    // Function that returns true if given number
    // is in binary format  i.e. number contains
    // only 0's and/or 1's
    function isBinary(number)
    {
        let set = new Set();
   
        // Put all the digits of the number in the set
        while (number > 0) {
            let digit = number % 10;
            set.add(digit);
            number = Math.floor(number/10);
        }
   
        // Since a HashSet does not allow duplicates so only
        // a single copy of '0' and '1' will be stored
        set.delete(0);
        set.delete(1);
   
        // If the original number only contained 0's and 1's
        // then size of the set must be 0
        if (set.size == 0) {
            return true;
        }
        return false;
    }
     
    // Driver code
    let n = 1000111;
    document.write(isBinary(n));
     
     
// This code is contributed by rag2127
</script>

Output: 

true

 

Time Complexity: O(logN), as we are using a loop to traverse logN times as in each traversal we are decrementing N by floor division of 10. 

Auxiliary Space: O(logN), as we are using extra space for the set.

Method #2: Native Way 

C++




// C++ program to check whether the
// given number is in binary format
#include<bits/stdc++.h>
using namespace std;
 
// Function that returns true if
// given number is in binary format
// i.e. number contains only 0's and/or 1's
int isBinary(int number)
{
    while (number > 0)
    {
        int digit = number % 10;
 
        // If digit is other than 0 and 1
        if (digit > 1)
            return false;
        number /= 10;
    }
    return true;
}
 
// Driver code
int main()
{
  int n = 1000111;
  if (isBinary(n) == 1)
    cout << "true";
  else
    cout << "false";
 
// This code is contributed
// by Shivi_Aggarwal
}

Java




// Java program to check whether the
// given number is in binary format
 
class GFG {
 
    // Function that returns true if
    // given number is in binary format
    // i.e. number contains only 0's and/or 1's
    static boolean isBinary(int number)
    {
        while (number > 0) {
            int digit = number % 10;
 
            // If digit is other than 0 and 1
            if (digit > 1)
                return false;
            number /= 10;
        }
        return true;
    }
 
    // Driver code
    public static void main(String a[])
    {
        int n = 1000111;
        System.out.println(isBinary(n));
    }
}

Python3




# Python3 program to check whether the
# given number is in binary format
 
# Function that returns true if
# given number is in binary format
# i.e. number contains only 0's and/or 1's
def isBinary(number):
 
    while (number > 0):
        digit = number % 10
 
        # If digit is other than 0 and 1
        if (digit > 1):
            return False
        number //= 10
     
    return True
 
# Driver code
if __name__ == "__main__":
 
    n = 1000111
    if (isBinary(n) == 1):
        print ("true")
    else:
        print ("false")
 
# This code is contributed by ita_c

C#




// C# program to check whether the
// given number is in binary format
 
using System;
 
class GFG {
 
    // Function that returns true if
    // given number is in binary format
    // i.e. number contains only 0's and/or 1's
    static bool isBinary(int number)
    {
        while (number > 0) {
            int digit = number % 10;
 
            // If digit is other than 0 and 1
            if (digit > 1)
                return false;
            number /= 10;
        }
        return true;
    }
 
    // Driver code
    static void Main()
    {
        int n = 1000111;
        Console.WriteLine(isBinary(n));
    }
    // This code is contributed by Ryuga
}

PHP




<?php
// PHP program to check whether the
// given number is in binary format
 
// Function that returns true if
// given number is in binary format
// i.e. number contains only 0's and/or 1's
function isBinary($number)
{
    while ($number > 0)
    {
        $digit = $number % 10;
 
        // If digit is other than 0 and 1
        if ($digit > 1)
            return false;
        $number /= 10;
    }
    return true;
}
 
// Driver code
$n = 1000111;
if (isBinary($n) == 1)
    echo "true";
else
    echo "false";
 
// This code is contributed
// by Mukul Singh

Javascript




<script>
 
// Javascript program to check whether the
// given number is in binary format
 
// Function that returns true if
// given number is in binary format
// i.e. number contains only 0's and/or 1's
function isBinary(number)
{
    while (number > 0)
    {
        let digit = number % 10;
 
        // If digit is other than 0 and 1
        if (digit > 1)
            return false;
             
        number = Math.floor(number / 10);
    }
    return true;
}
 
// Driver code
let n = 1000111;
 
document.write(isBinary(n));
     
// This code is contributed by avanitrachhadiya2155
 
</script>

Output

true

Time Complexity: O(logN), as we are using a loop to traverse logN times as in each traversal we are decrementing N by floor division of 10.

Auxiliary Space: O(1), as we are not using any extra space.


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!