#!/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)