language: Python (python 2.7.3)
date: 1092 days 16 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
'''Last modified on 24/05/2010
 
Author: Xavier Ho <contact@xavierho.com>
 
Dependencies: numpy'''
from math import sqrt
import numpy
                    
def numpy_prime_numbers(limit=1000000):
    '''Returns a list of prime numbers up to the limit, using numpy and Sieve of Eratosthenes.'''
    primes = numpy.ones(limit, dtype=numpy.bool)
    for n in xrange(2, int(sqrt(limit))):
        if primes[n]:
            primes[n*n::n] = 0
    return (p for p in numpy.nonzero(primes)[0][2:])
 
if __name__ == '__main__':
    from time import time
    start = time()
    for p in numpy_prime_numbers(): pass
    print time() - start, "seconds" 
#    print('\n'.join(str(p) for p in primes))