Files
project-euler/problem-37.py
2018-07-02 15:45:49 -04:00

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))