import math
def primeList(n):
plist = [2, 3]
j = 3
while len(plist) < n:
j += 2
lim = math.sqrt(j)
for p in plist: # 100k primes: 3.75s vs 5.25 with while loop
if p > lim: # and the setting of the flag,
plist.append(j) # on ideone - dNLYD3
break
if j % p == 0:
break
return plist
primeList(10000)
aW1wb3J0IG1hdGgKZGVmIHByaW1lTGlzdChuKToKICAgIHBsaXN0ID0gWzIsIDNdCiAgICBqID0gMwogICAgd2hpbGUgbGVuKHBsaXN0KSA8IG46CiAgICAgICAgaiArPSAyCiAgICAgICAgbGltID0gbWF0aC5zcXJ0KGopCiAgICAgICAgZm9yIHAgaW4gcGxpc3Q6ICAgICAjIDEwMGsgcHJpbWVzOiAzLjc1cyB2cyA1LjI1IHdpdGggd2hpbGUgbG9vcAogICAgICAgICAgICBpZiBwID4gbGltOiAgICAgICAgICAgICAgICAgICAgIyBhbmQgdGhlIHNldHRpbmcgb2YgdGhlIGZsYWcsIAogICAgICAgICAgICAgICAgcGxpc3QuYXBwZW5kKGopICAgICAgICAgICAgIyBvbiBpZGVvbmUgLSBkTkxZRDMKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIGlmIGogJSBwID09IDA6CiAgICAgICAgICAgICAgICBicmVhawogICAgcmV0dXJuIHBsaXN0CnByaW1lTGlzdCgxMDAwMCk=