[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