fork download
  1. import itertools
  2. import math
  3.  
  4.  
  5. def is_prime(n):
  6. assert n >= 1, f"n must be >= 1, is {n}"
  7. if n == 1:
  8. return False
  9. if n % 2 == 0:
  10. return True
  11.  
  12. for i in range(3, math.floor(math.sqrt(n))+1, 2):
  13. if n % i == 0:
  14. return False
  15.  
  16. return True
  17.  
  18.  
  19. only_pair_prime = iter([2])
  20. odd_numbers = itertools.count(3, 2)
  21. prime_candidates = itertools.chain(only_pair_prime, odd_numbers)
  22. primes = filter(is_prime, prime_candidates)
  23. first_20 = itertools.islice(primes, 20)
  24. print(list(first_20))
  25.  
Success #stdin #stdout 0.03s 9888KB
stdin
Standard input is empty
stdout
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]