[Tutor] primes (generator)

Sean Perry shaleh at speakeasy.net
Sun Mar 20 22:39:08 CET 2005


Gregor Lingl wrote:
> 
> The following variation of your sieve, using
> extended slice assignment  seems to
> be sgnificantly faster. Try it out, if you like.
> 

Here are the numbers:
Primes 1 - 1,000,000 timing:
    extendedSliceSieve: 0.708388 seconds
            listPrimes: 0.998758 seconds
             karlSieve: 1.703553 seconds
primeConciseOptimized: 5.133922 seconds
              setSieve: 7.564576 seconds
          primeConcise: 1644.683214 seconds --> 27 minutes 24 seconds

if __name__ == '__main__':
     # setup timers as a list of tuples (name, timeit instance)

     results = []
     longest = 0
     for t in timers:
         result = t[1].timeit(1)
         longest = max(longest, len(t[0]))
         results.append((t[0], result))

     results.sort(lambda x, y: cmp(x[1], y[1]))

     print "Primes 1 - 1,000,000 timing:"

     format_str = "%%%ds: %%f seconds" % longest
     for i in results:
         print format_str % i


More information about the Tutor mailing list