1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | from math import sqrt def prime_numbers(limit=1000000): '''Prime number generator. Yields the series 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ... using Sieve of Eratosthenes. This generator requires the bitarray module if the limit is above 100 million.''' yield 2 sub_limit = int(sqrt(limit)) flags = [False, False] + [True] * (limit - 2) # Step through all the odd numbers for i in xrange(3, limit, 2): if flags[i]: yield i if i <= sub_limit: i2 = i*i flags[i2::i<<1] = [False] * len(flags[i2::i<<1]) if __name__ == '__main__': from time import time start = time() for p in prime_numbers(1000000): pass print time() - start, "seconds" # print('\n'.join(str(p) for p in primes)) |
CmZyb20gbWF0aCBpbXBvcnQgc3FydAoKZGVmIHByaW1lX251bWJlcnMobGltaXQ9MTAwMDAwMCk6CiAgICAnJydQcmltZSBudW1iZXIgZ2VuZXJhdG9yLiBZaWVsZHMgdGhlIHNlcmllcwogICAgMiwgMywgNSwgNywgMTEsIDEzLCAxNywgMTksIDIzLCAyOSAuLi4gICAgCiAgICB1c2luZyBTaWV2ZSBvZiBFcmF0b3N0aGVuZXMuCiAgICAKICAgIFRoaXMgZ2VuZXJhdG9yIHJlcXVpcmVzIHRoZSBiaXRhcnJheSBtb2R1bGUgaWYgdGhlIGxpbWl0IGlzIGFib3ZlIDEwMCBtaWxsaW9uLicnJwogICAgeWllbGQgMgogICAgc3ViX2xpbWl0ID0gaW50KHNxcnQobGltaXQpKSAKICAgIGZsYWdzID0gW0ZhbHNlLCBGYWxzZV0gKyBbVHJ1ZV0gKiAobGltaXQgLSAyKQogICAgCiAgICAjIFN0ZXAgdGhyb3VnaCBhbGwgdGhlIG9kZCBudW1iZXJzCiAgICBmb3IgaSBpbiB4cmFuZ2UoMywgbGltaXQsIDIpOiAgICAgICAKICAgICAgICBpZiBmbGFnc1tpXToKICAgICAgICAgICAgeWllbGQgaQogICAgICAgICAgICBpZiBpIDw9IHN1Yl9saW1pdDoKICAgICAgICAgICAgICAgIGkyID0gaSppCiAgICAgICAgICAgICAgICBmbGFnc1tpMjo6aTw8MV0gPSBbRmFsc2VdICogbGVuKGZsYWdzW2kyOjppPDwxXSkKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICBmcm9tIHRpbWUgaW1wb3J0IHRpbWUKICAgIHN0YXJ0ID0gdGltZSgpCiAgICBmb3IgcCBpbiBwcmltZV9udW1iZXJzKDEwMDAwMDApOiBwYXNzCiAgICBwcmludCB0aW1lKCkgLSBzdGFydCwgInNlY29uZHMiIAojICAgIHByaW50KCdcbicuam9pbihzdHIocCkgZm9yIHAgaW4gcHJpbWVzKSk=
-
upload with new input
-
result: Success time: 0.2s memory: 0 kB returned value: 0
0.177294015884 seconds


