fork download
  1. from itertools import islice
  2. from fileinput import input
  3.  
  4. def gen_primes(): # http://stackoverflow.com/a/2212007/849891
  5. D = {}
  6. q = 2 # first integer to test for primality.
  7.  
  8. while True:
  9. if q not in D:
  10. # not marked composite, must be prime
  11. yield q
  12.  
  13. #first multiple of q not already marked
  14. D[q * q] = [q]
  15. else:
  16. for p in D[q]:
  17. D.setdefault(p + q, []).append(p)
  18. # no longer need D[q], free memory
  19. del D[q]
  20.  
  21. q += 1
  22.  
  23. for line in input(): # 400k:11.63s-31.2MB 200k:5.11-18.0 n^1.19
  24. n = int(line) # 1m, projected: 35s 100k:2.23-12.8 n^1.20
  25. print( list( islice( (p for p in gen_primes() ), n-1, n+1)))
  26. break
Success #stdin #stdout 2.23s 12784KB
stdin
100000
stdout
[1299709, 1299721]