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.

Respuesta :

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.