Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import sqrt
- import time
- def prime(n):
- if n<2: return False
- if n==2: return True
- return all(n%i for i in [2] + range(3, int(sqrt(n))+1, 2))
- # return all primes up to n, fast as hell
- def get_primes(n):
- numbers = range(3, n+1, 2)
- half = n//2
- current = 4
- for step in xrange(3, n+1, 2):
- for i in xrange(current, half, step):
- numbers[i-1]=0
- current += 2*(step+1)
- if current > half:
- p = [2] + filter(None, numbers)
- if not prime(n):
- try: p.remove(n)
- except ValueError: pass
- return p
- start_time = time.time()
- print(sum(get_primes(2000000)))
- print("--- %s seconds ---" % (time.time() - start_time))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement