I was trying to write a simple program to determine if input integer is a power of two.
I had following code. It will fail the test case for n=536870912 (536870912 is the 2^29).
I tried with formating the number, format(y,'12g') the output is close to 0 but not equal to 0, 3.43965 e-07.
How should I overcome this number issue?
s= math.log(n,2)
[sh,y]=divmod(s,1)
if y!=0:
#if format(yu,'20f')!=format(0,'20f') :
return False
else:
return True