[Tutor] why?
bob gailer
bgailer at gmail.com
Thu May 29 03:32:56 CEST 2008
Robert William Hanks wrote:
>
> Need ti find out whem a number o this form i**3+j**3+1 is acube.
> tryed a simple brute force code but, why this not work?
>
> def iscube(n):
> cubed_root = n**(1/3.0)
> if round(cubed_root)**3 == n:
> return True
> else:
> return False
>
> for i in range(1,10000000):
> for j in range(1,10000000):
> soma= i**3 +j**3 +1
> if isCube(soma):
> print i
> print j
> print soma
>
Assuming you fixed the problem, do you know of any cases for which i**3
+j**3 +1 is a cube?
Also note this program will run for a LONG time.
You can shorten the run time:
for i in range(1,10000000):
for j in range(j,10000000): # test each combination once
soma = i**3 +j**3 +1
cubed_root = soma**(0.333) # function call and division take
extra time and there is no need for either
if abs(cubed_root - round(cubed_root)) < .01: # this is a
guess at close enough, and cheaper than cubing?
print i
print j
print soma
--
Bob Gailer
919-636-4239 Chapel Hill, NC
More information about the Tutor
mailing list