56 lines
919 B
Python
56 lines
919 B
Python
|
|
NUM_PRIMES = 11
|
|
START_NUM = 9
|
|
|
|
|
|
def is_prime(n):
|
|
"""Returns True if n is prime."""
|
|
if n == 1:
|
|
return False
|
|
if n == 2:
|
|
return True
|
|
if n == 3:
|
|
return True
|
|
if n % 2 == 0:
|
|
return False
|
|
if n % 3 == 0:
|
|
return False
|
|
|
|
i = 5
|
|
w = 2
|
|
|
|
while i * i <= n:
|
|
if n % i == 0:
|
|
return False
|
|
i += w
|
|
w = 6 - w
|
|
|
|
return True
|
|
|
|
|
|
def truncatable_prime(i):
|
|
j = i
|
|
for _ in range(len(j)):
|
|
if not is_prime(int(j)):
|
|
return False
|
|
j = j[1:]
|
|
j = i
|
|
for _ in range(len(j)):
|
|
if not is_prime(int(j)):
|
|
return False
|
|
j = j[:-1]
|
|
return True
|
|
|
|
|
|
if __name__ == '__main__':
|
|
results = []
|
|
i = START_NUM
|
|
while len(results) != NUM_PRIMES:
|
|
i += 1
|
|
if truncatable_prime(str(i)):
|
|
results.append(i)
|
|
|
|
print(results)
|
|
print(sum(results))
|
|
|