Initial commit
This commit is contained in:
55
problem-37.py
Normal file
55
problem-37.py
Normal file
@@ -0,0 +1,55 @@
|
||||
|
||||
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))
|
||||
|
||||
Reference in New Issue
Block a user