Q. Python program to find whether a number is power of two or not.

Here you will find an algorithm and program in Python programming language to find whether the given number is power of 2 or not. Now first let us understand what power of two means.

Explanation : In mathematics, a power of two is a number of the form 2^n where n is an integer. Here we use a mathematical concept of Logarithm, The most simple method for finding whether a number is power of two or not is to simply take the log of the number on base 2 and if you get an integer then the number is the power of 2.

For Example : 256, when we take log of 256 to the base 2 we get 8 which is integer, hence 256 is power of 2.

Algorithm to find whether a number is power of two or not

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


Python Program to Find Whether a Given Number is Power of 2

import math 
 
def Log2(x): 
    if x == 0: 
        return false; 
    return (math.log10(x) / math.log10(2)); 

def find_power_of_two(num): 
    return (math.ceil(Log2(num)) == math.floor(Log2(num))); 

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)); 

Output

256 is the power of two.