from fractions import Fraction
counter = 0;
a = int(raw_input())
b = int(raw_input())
if 1 <= a <= 10 ** 8:
if a <= b <= 10 ** 8:
for i in range(a, b+1):
if float(i**Fraction(1,3)).is_integer() == True:
counter += 1
print(i)
print(str(counter))
print (str(float(64**Fraction(1,3)).is_integer()))
This code returns false which results in the if statement not being run at all. Furthermore, the cube root of 64 is 4, therefore, the result should be an integer. However, in the range between 1 and 100 inclusive, 1, 8, and 27 return true for this case. Any help would be appreciated as to why the cube root of 64 is not returning true.