import math
import numpy as np
from numba import jit
@jit
def is_prime_numba(n):
if n % 2 == 0 or n % 3 == 0:
return False
k = 1
limit = int(math.sqrt(n))
while 6 * k - 1 <= limit or 6 * k + 1 <= limit:
if n % (6 * k - 1) == 0 or n % (6 * k + 1) == 0:
return False
k += 1
return True
%timeit is_prime_numba(2305843009213693951)
1 loop, best of 3: 5.22 s per loop