On 18.02.13 21:13, John Immarino wrote:
max=0
m=0
while m<=1000000:
     m+=1
     count=0
     n=m
     while n!=1:
         count+=1
         if n%2==0:
             n=n//2
         else:
             n=3*n+1
     if count>max:
          max=count
          num=m
print(num,max)

Some minor tips:

1. Use range() for m iteration.
2. Instead of "if n%2==0:" use just "if n%2:".
3. Convert all you code to a function. Python is a little faster with locals than with globals.

In sum all this tips will speedup your code about 2x.

And one big tip:

Use cashing (and recursion). This will speedup your code more than 10x.


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to