def primes(N):
return reduce((lambda r,x: r-set(range(x**2,N,x)) if (x in r) else r),
range(2,N), set(range(2,N)))
print( sorted( list( primes( 10000)))[-2:] )
# 10k: time: 0.14s memory: 5112 kB
# 20k: time: 0.50s memory: 5204 kB
# 40k: time: 1.44s memory: 5708 kB
# 100k: time: 10.46s memory: 7124 kB n^2.2
ZGVmIHByaW1lcyhOKToKIHJldHVybiByZWR1Y2UoKGxhbWJkYSByLHg6IHItc2V0KHJhbmdlKHgqKjIsTix4KSkgaWYgKHggaW4gcikgZWxzZSByKSwgCiAgICAgICAgICAgICAgIHJhbmdlKDIsTiksIHNldChyYW5nZSgyLE4pKSkKCnByaW50KCBzb3J0ZWQoIGxpc3QoIHByaW1lcyggMTAwMDApKSlbLTI6XSApCgojIDEwazogIHRpbWU6IDAuMTRzICAgIG1lbW9yeTogNTExMiBrQgojIDIwazogIHRpbWU6IDAuNTBzICAgIG1lbW9yeTogNTIwNCBrQiAKIyA0MGs6ICB0aW1lOiAxLjQ0cyAgICBtZW1vcnk6IDU3MDgga0IKIyAxMDBrOiB0aW1lOiAxMC40NnMgICBtZW1vcnk6IDcxMjQga0IgICAgIG5eMi4y