import taichi as ti
import time
ti.init()
@ti.func
def is_prime(n: int):
result = True
for k in range(2, int(n ** 0.5) + 1):
if n % k == 0:
result = False
break
return result
@ti.kernel
def count_primes(n: int) -> int:
count = 0
for k in range(2, n):
if is_prime(k):
count += 1
return count
start = time.time()
print(count_primes(100000000))
end = time.time()
print('times:', end - start)
2、numba
# coding:utf-8
from numba import jit
import time
# ti.init()
@jit
def is_prime(n):
result = True
for k in range(2, int(n ** 0.5) + 1):
if n % k == 0:
result = False
break
return result
@jit
def count_primes(n):
count = 0
for k in range(2, n):
if is_prime(k):
count += 1
return count
start = time.time()
print count_primes(1000000)
end = time.time()
print 'times:', end - start