In [1]:
import cython
%reload_ext cython
In [2]:
%%cython
def cfib(n):
"""Print the Fibonacci series up to n."""
a, b = 0, 1
while b < n:
#print b,
a, b = b, a + b
def cprimes(int kmax):
cdef int n, k, i
cdef int p[1000]
result = []
if kmax > 1000:
kmax = 1000
k = 0
n = 2
while k < kmax:
i = 0
while i < k and n % p[i] != 0:
i = i + 1
if i == k:
p[k] = n
k = k + 1
result.append(n)
n = n + 1
return result
In [3]:
#demo_python
import numpy as np
def pyfib(n):
"""Print the Fibonacci series up to n."""
a, b = 0, 1
while b < n:
#print b,
a, b = b, a + b
def pyprimes(kmax):
p=np.zeros(1000)
result = []
if kmax > 1000:
kmax = 1000
k = 0
n = 2
while k < kmax:
i = 0
while i < k and n % p[i] != 0:
i = i + 1
if i == k:
p[k] = n
k = k + 1
result.append(n)
n = n + 1
return result
In [4]:
%%timeit -n100
cfib(100000)
In [5]:
%%timeit -n100
pyfib(100000)
In [6]:
%%timeit -n100
cprimes(100000)
In [7]:
%%timeit -n100
pyprimes(100000)
In [ ]: