Q. Write a program to find whether a no is power of two or not.



Power of Two :- In mathematics, a power of two is a number of the form 2^n where n is an integer.
For Example :-
Input = 64
Output = 64 is the power of 2
So as we can see that 2^6 = 64. So the number 64 is the power of two.

Algorithm

START
   Step 1 → Take integer variable num
   Step 2 → find out the log number with base 2
   Step 3 → if outcome is integer then DISPLAY number is power of 2.
   Step 4 → Otherwise, DISPLAY number is not power of 2.
STOP


Program

  • C
  • C++
  • Java
  • Python
  • C#
  • PHP
  • #include <stdio.h>
    #include<stdbool.h>
    #include<math.h>
      
    /* Function to check if num is power of 2*/
    bool find_power_of_two(int num) 
    { 
       if(num==0) 
       return false; 
      
       return (ceil(log2(num)) == floor(log2(num))); 
    } 
      
    // Driver program 
    int main() 
    {   int num=256;
        find_power_of_two(num)? printf("%d is the power of two\n",num): printf("%d is not the power of two\n",num); 
        return 0; 
    } 
    
    #include <bits/stdc++.h>
    using namespace std; 
      
    // Function to check if num is power of 2 
    bool find_power_of_two(int num) 
    { 
       if(num==0) 
       return false; 
      
       return (ceil(log2(num)) == floor(log2(num))); 
    } 
      
    // Driver program 
    int main() 
    {   int num=256;
        find_power_of_two(num)? cout<< num<<" is the power of two"<< endl: cout<< num<<" is not the power of two"<< endl; 
      
        return 0; 
        
    }
    
    class LFC 
    { 
    /* Function to check if num is power of 2*/
    static boolean find_power_of_two(int num) 
    { 
        if(num==0) 
        return false; 
      
    return (int)(Math.ceil((Math.log(num) / Math.log(2)))) ==  
           (int)(Math.floor(((Math.log(num) / Math.log(2))))); 
    } 
      
    // Driver Code 
    public static void main(String[] args) 
    {   int num=256;
        if(find_power_of_two(num)) 
        System.out.printf("%d is the power of two\n",num); 
        else
        System.out.printf("%d is not the power of two\n",num); 
        
    } 
    } 
    
    import math 
      
    # Function to check 
    # Log base 2 
    def Log2(x): 
        if x == 0: 
            return false; 
      
        return (math.log10(x) / 
                math.log10(2)); 
      
    # Function to check 
    # if x is power of 2 
    def find_power_of_two(num): 
        return (math.ceil(Log2(num)) == 
                math.floor(Log2(num))); 
      
    # Driver Code 
    num=256
    if(find_power_of_two(num)): 
        print("{0} is the power of two".format(num)); 
    else: 
        print("{0} is not the power of two".format(num)); 
      
    using System; 
      
    class LFC 
    { 
          
    /* Function to check if  
       x is power of 2*/
    static bool find_power_of_two(int num) 
    { 
      
        if(num==0) 
         return false; 
      
        return (int)(Math.Ceiling((Math.Log(num) /  
                                   Math.Log(2)))) == 
               (int)(Math.Floor(((Math.Log(num) /  
                                  Math.Log(2))))); 
    } 
      
    // Driver Code 
    public static void Main() 
    {   int num=256;
        if(find_power_of_two(num)) 
            Console.WriteLine("{0} is the power of two",num); 
        else
            Console.WriteLine("{0} is not the power of two",num); 
    
    } 
    } 
    
    function Log2($x) 
    { 
        return (log10($x) /  
                log10(2)); 
    } 
      
      
    // Function to check 
    // if x is power of 2 
    function find_power_of_two($num) 
    { 
        return (ceil(Log2($num)) ==  
                floor(Log2($num))); 
    } 
      
    // Driver Code 
    $num=256;
    if(find_power_of_two($num)) 
    echo "$num is the power of two"; 
    else
    echo "$num is not the power of two"; 
    
    #include <stdio.h>
    #include<stdbool.h>
    #include<math.h>
      
    /* Function to check if num is power of 2*/
    bool find_power_of_two(int num) 
    { 
       if(num==0) 
       return false; 
      
       return (ceil(log2(num)) == floor(log2(num))); 
    } 
      
    // Driver program 
    int main() 
    {   int num=256;
        find_power_of_two(num)? printf("%d is the power of two\n",num): printf("%d is not the power of two\n",num); 
        return 0; 
    } 
    

    Output

    256 is the power of two.
    

    Recommended Programs

       Program to reverse a string.
       Program to print fibonacci series.