Remarkable results with psyco and sieve of Eratosthenes

Will McGugan will at willNOmcguganSPAM.com
Wed Nov 29 23:24:56 CET 2006


> #!/usr/bin/python -OO
> import math
> import sys
> import psyco
> 
> psyco.full()
> 
> def primes():
>     primes=[3]
>     for x in xrange(5,10000000,2):
>         maxfact = int(math.sqrt(x))
>         flag=True
>         for y in primes:
>             if y > maxfact:
>                 break
>             if x%y == 0:
>                 flag=False
>                 break
>         if flag == True:
>             primes.append(x)
> primes()
> 

Some trivial optimizations. Give this a whirl.

def primes():
     sqrt=math.sqrt
     primes=[3]
     for x in xrange(5,10000000,2):
         maxfact = int(sqrt(x))
         for y in primes:
             if y > maxfact:
                 primes.append(x)
                 break
             if not x%y:
                 break
     return primes

-- 
blog: http://www.willmcgugan.com



More information about the Python-list mailing list