[Tutor] why?
Kent Johnson
kent37 at tds.net
Thu May 29 03:58:11 CEST 2008
On Wed, May 28, 2008 at 8:43 PM, Robert William Hanks
<astroultraman at gmail.com> 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
Let's see. The inner loop will run 10000000 * 10000000 =
100000000000000 times. That's a pretty big number. Suppose each
iteration of the loop takes 1 microsecond. (That seems optimistic but
not too much - on my computer iscube(27) takes about 1.3
microseconds.) Then the entire program will complete in 10000000 *
10000000 / 1000000 / 60 / 60 / 24 / 365 = 3 years. Other than that it
look OK to me...
Looks like you need either a better algorithm or a faster computer!
Kent
More information about the Tutor
mailing list