Jag har testat två saker som har funkat med lägre tal:
Kod:
def isCube(x):
if x**(1.0/3) % 1 == 0:
return 1
return 0
print isCube(27) #blir true
print isCube(28) #blir false
raw_input('')
och:
Kod:
def isCube(x):
if x**(1.0/3) == int(x**(1.0/3)):
return 1
return 0
print isCube(27) #blir true
print isCube(28) #blir false
raw_input('')
Det är bara det att om jag matar in ett lite högre tal, t.ex. 1000, som är 10^3, så visar den false.
Det kan bero på att det blir något avrundningserror, eftersom att int(1000**(1.0/3)) returnerar 9.
Finns det något annat sätt att kolla om ett tal innehåller decimaler?