summaryrefslogtreecommitdiff
path: root/docs/examples/tutorial/cython_tutorial/primes.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/tutorial/cython_tutorial/primes.pyx')
-rw-r--r--docs/examples/tutorial/cython_tutorial/primes.pyx23
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