fork download
  1. def primes(N):
  2. return reduce((lambda r,x: (r.difference_update(range(x**2,N,x)) or r) if (x in r) else r),
  3. # range(2,N), set(range(2,N)))
  4. range(2,int((N+1)**0.5+1)), set(range(2,N)))
  5.  
  6. print( sorted( list( primes( 100000 )))[-2:] )
  7.  
  8. # - SQRT - - NO SQRT -
  9. # 100k: time: 0.06s memory: 5924 kB 0.12 7.1
  10. # 200k: time: 0.11s memory: 7232 kB < O(n) !! 0.24 9.6
  11. # 400k: time: 0.20s memory: 9536 kB < O(n) !! 0.46 14.3
  12. # 1m: time: 0.48s memory: 16656 kB < O(n) !!! 1.12 28.4
  13. # 2m: time: 0.97s memory: 28752 kB O(n) !!!
Success #stdin #stdout 0.06s 5920KB
stdin
Standard input is empty
stdout
[99989, 99991]