import math
total = 0
limit = 400000
KnownPrime = set([2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
53, 59, 61, 67, 71])
KnownPrime.update(set([73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127,
131, 137, 139, 149, 151, 157, 163, 167, 173]))
suspected = set(range(2, limit+1)) # list of suspected prime numbers
for p in KnownPrime:
if p <= limit:
total += p
suspected.difference_update(set(range(p, limit+1, p)))
for i in suspected:
k = int( math.sqrt(i)+1 )
if k % 2 == 0: k += 1
PrimeCheck = set(range(k, 2, -2))
PrimeCheck.difference_update(KnownPrime)
for j in PrimeCheck:
if i % j == 0:
break
if i % j:
total += i
print total
aW1wb3J0IG1hdGgKCnRvdGFsID0gMApsaW1pdCA9IDQwMDAwMApLbm93blByaW1lID0gc2V0KFsyLCAzLCA1LCA3LCAxMSwgMTMsIDE3LCAxOSwgMjMsIDI5LCAzMSwgMzcsIDQxLCA0MywgNDcsIAogICAgICAgICAgICAgICAgICA1MywgNTksIDYxLCA2NywgNzFdKQpLbm93blByaW1lLnVwZGF0ZShzZXQoWzczLCA3OSwgODMsIDg5LCA5NywgMTAxLCAxMDMsIDEwNywgMTA5LCAxMTMsIDEyNywgCiAgICAgICAgICAgICAgICAgICAgICAgMTMxLCAxMzcsIDEzOSwgMTQ5LCAxNTEsIDE1NywgMTYzLCAxNjcsIDE3M10pKQpzdXNwZWN0ZWQgPSBzZXQocmFuZ2UoMiwgbGltaXQrMSkpICMgbGlzdCBvZiBzdXNwZWN0ZWQgcHJpbWUgbnVtYmVycwpmb3IgcCBpbiBLbm93blByaW1lOgogICAgaWYgcCA8PSBsaW1pdDoKICAgICAgICB0b3RhbCArPSBwCiAgICAgICAgc3VzcGVjdGVkLmRpZmZlcmVuY2VfdXBkYXRlKHNldChyYW5nZShwLCBsaW1pdCsxLCBwKSkpCgpmb3IgaSBpbiBzdXNwZWN0ZWQ6CiAgICBrID0gaW50KCBtYXRoLnNxcnQoaSkrMSApCiAgICBpZiBrICUgMiA9PSAwOiBrICs9IDEKICAgIFByaW1lQ2hlY2sgPSBzZXQocmFuZ2UoaywgMiwgLTIpKQogICAgUHJpbWVDaGVjay5kaWZmZXJlbmNlX3VwZGF0ZShLbm93blByaW1lKQogICAgZm9yIGogaW4gUHJpbWVDaGVjazoKICAgICAgICBpZiBpICUgaiA9PSAwOgogICAgICAgICAgICBicmVhawogICAgaWYgaSAlIGo6CiAgICAgICAgdG90YWwgKz0gaQoKcHJpbnQgdG90YWw=