Skip to content

Instantly share code, notes, and snippets.

@Alexis-D
Created November 6, 2011 11:51
Show Gist options
  • Save Alexis-D/1342783 to your computer and use it in GitHub Desktop.
Save Alexis-D/1342783 to your computer and use it in GitHub Desktop.
Eratosthene sieve
#!/usr/bin/env pypy
#-*- coding: utf-8 -*-
def get_primes(n=10**6):
if n < 2:
return []
sieve = [True] * (n + 1)
sieve[:2] = [False, False]
#primes = [2]
m = int(n ** .5) + 1
for i in xrange(3, m, 2):
if sieve[i]:
#primes.append(i)
for j in xrange(i, n // i + 1, 2):
sieve[i * j] = False
return sieve
#if m % 2 == 0:
# m += 1
#for i in xrange(m, n + 1, 2):
# if sieve[i]:
# primes.append(i)
#return primes
if __name__ == '__main__':
get_primes(10 ** 9)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment