Skip to content

Instantly share code, notes, and snippets.

@post2web
Created May 5, 2017 17:07
Show Gist options
  • Save post2web/e7d6c4142f1e02c1ae5375186004c355 to your computer and use it in GitHub Desktop.
Save post2web/e7d6c4142f1e02c1ae5375186004c355 to your computer and use it in GitHub Desktop.
a fast prime number generator
def find_primes(n):
is_prime = np.ones(n, dtype=bool)
# remove 0 and 1 because we know they are not prime
is_prime[0:2] = False
# start from number 2
for number in range(2 , n):
if number**2 > n: break
if is_prime[number]:
is_prime[number*2::number] = False
return np.where(is_prime)[0]
assert len(find_primes(100) == 25)
assert len(find_primes(1000) == 168)
assert len(find_primes(10000) == 1229)
assert len(find_primes(100000) == 9592)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment