-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathp035.py
41 lines (28 loc) · 814 Bytes
/
p035.py
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
34
35
36
37
38
39
40
41
"""
Circular primes
The number, 197, is called a circular prime because all rotations of the digits:
197, 971, and 719, are themselves prime.
There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, and 97.
How many circular primes are there below one million?
https://projecteuler.net/problem=35
"""
from eulerlib import Crible
def rotation(n):
nombres = []
chiffres = 0
q = n
while q != 0:
q //= 10
chiffres += 1
decalage = 10 ** (chiffres - 1)
for _ in range(chiffres):
n, r = divmod(n, 10)
n += r * decalage
nombres.append(n)
return nombres
crible = Crible(1000000)
resultat = 0
for i in crible.liste():
if all([crible.est_premier(j) for j in rotation(i)]):
resultat += 1
print(resultat)