How can I speed up a script that iterates over a large range (600 billion)?

Paul Rubin no.email at nospam.invalid
Wed Jun 22 02:23:12 EDT 2011


Chris Torek <nospam at torek.net> writes:
> def primes():
> """
> Yields sequence of prime numbers via Sieve of Eratosthenes.
> """

I think this has the same order-complexity but is enormously slower in
practice, and runs out of recursion stack after a while. Exercise: spot
the recursion.
 from itertools import islice, ifilter, count
 def primes():
 a = count(2)
 while True:
 p = a.next()
 yield p
 a = ifilter(lambda t,p=p: t%p, a)
 # print first 100 primes
 print list(islice(primes(), 100))


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /