163k views
0 votes
Write the function which takes an arbitrary real number p , and returns true if the numeber is equals to some power of 2, i.e. p=2n for some n . Your task is to implement a recursive function power_of_2 withount using loops and library functions.

1 Answer

3 votes

def power_of_2(p):

if p == 2:

return True

elif p < 2:

return False

return power_of_2(p/2)

print(power_of_2(32))

The function keeps dividing the number by 2 until it is equal to 2 or the number ends up being less than 2. If at some point the number is equal to 2, it is a power of 2 otherwise it's not a power of 2.

User Nikolay Botev
by
4.6k points