blob: 8f00da8ed2cebd37d64fdb8503799f82c81ac1fd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
def circular_prime(number):
global number_list
result = True
number_str = str(number)
for i in range(1, len(number_str)):
rotated_str = number_str[i:] + number_str[:i]
rotated_nr = int(rotated_str)
if not number_list[rotated_nr-1]:
result = False
break
return result
limit = 1000000
number_list = [False]
for i in range(2, limit+1):
number_list.append(True)
for i in range(2, limit+1):
x = i*2
while(x <= len(number_list)):
number_list[x-1] = False
x += i
count = 0
for i in range(1, limit+1):
if number_list[i-1] and circular_prime(i):
count += 1
print count
|