53 lines
1.0 KiB
Python
53 lines
1.0 KiB
Python
|
|
MAX_NUM = 1000000
|
|
|
|
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
|
|
|
|
|
|
if __name__ == '__main__':
|
|
results = []
|
|
for i in range(MAX_NUM):
|
|
if not is_prime(i):
|
|
continue
|
|
j = str(i)
|
|
if len(j) == 1:
|
|
if is_prime(i):
|
|
results.append(i)
|
|
continue
|
|
if len(j) == 2:
|
|
if is_prime(i) and is_prime(int(j[1] + j[0])):
|
|
results.append(i)
|
|
continue
|
|
for rotation in range(len(j)):
|
|
prime = True
|
|
j = j[1] + j[2:] + j[0]
|
|
if not is_prime(int(j)):
|
|
prime = False
|
|
break
|
|
if prime is True: results.append(i)
|
|
|
|
print(results)
|
|
print(len(results))
|