primes_cpp.pyx 588 Bytes
Newer Older
1 2 3 4
# distutils: language=c++

from libcpp.vector cimport vector

5
def primes(unsigned int nb_primes):
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
    cdef int n, i
    cdef vector[int] p
    p.reserve(nb_primes)  # allocate memory for 'nb_primes' elements.

    n = 2
    while p.size() < nb_primes:  # size() for vectors is similar to len()
        for i in p:
            if n % i == 0:
                break
        else:
            p.push_back(n)  # push_back is similar to append()
        n += 1

    # Vectors are automatically converted to Python
    # lists when converted to Python objects.
    return p