diff options
Diffstat (limited to 'docs/examples/tutorial/cython_tutorial/primes.pyx')
-rw-r--r-- | docs/examples/tutorial/cython_tutorial/primes.pyx | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/docs/examples/tutorial/cython_tutorial/primes.pyx b/docs/examples/tutorial/cython_tutorial/primes.pyx new file mode 100644 index 000000000..96ecdb59a --- /dev/null +++ b/docs/examples/tutorial/cython_tutorial/primes.pyx @@ -0,0 +1,23 @@ +def primes(int nb_primes): + cdef int n, i, len_p + cdef int p[1000] + if nb_primes > 1000: + nb_primes = 1000 + + len_p = 0 # The current number of elements in p. + n = 2 + while len_p < nb_primes: + # Is n prime? + for i in p[:len_p]: + if n % i == 0: + break + + # If no break occurred in the loop, we have a prime. + else: + p[len_p] = n + len_p += 1 + n += 1 + + # Let's return the result in a python list: + result_as_list = [prime for prime in p[:len_p]] + return result_as_list |