33 lines
608 B
Python
33 lines
608 B
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
def primes(n):
|
||
|
sieve = [True] * n
|
||
|
for p in range(2, int(n**0.5)):
|
||
|
if not sieve[p]:
|
||
|
continue
|
||
|
for i in range(p**2, n, p):
|
||
|
sieve[i] = False
|
||
|
return [i for i, p in enumerate(sieve) if p][2:]
|
||
|
|
||
|
target = 40
|
||
|
repw = 10**9
|
||
|
lim = 10**6
|
||
|
nums = primes(lim)
|
||
|
c = 0
|
||
|
s = 0
|
||
|
|
||
|
for p in nums[3:]:
|
||
|
if p%4 != 1 and p%5 != 1:
|
||
|
continue
|
||
|
if pow(10, repw, 9*p) == 1:
|
||
|
c += 1
|
||
|
s += p
|
||
|
#print c, p
|
||
|
if c == target:
|
||
|
break
|
||
|
|
||
|
if c < target:
|
||
|
print("Limit reached. Count = {}/{}".format(c, target))
|
||
|
|
||
|
print(s)
|