26 lines
504 B
Python
26 lines
504 B
Python
|
from lib_prime import primes
|
||
|
|
||
|
|
||
|
def cyles(xs):
|
||
|
if len(xs) <= 1:
|
||
|
return xs
|
||
|
return [xs[i:] + xs[:i] for i in range(len(xs))]
|
||
|
|
||
|
|
||
|
def is_circular(p, prime_set):
|
||
|
cs = cyles(str(p))
|
||
|
for c in cs:
|
||
|
if not int("".join(c)) in prime_set:
|
||
|
return False
|
||
|
return True
|
||
|
|
||
|
|
||
|
def euler_035():
|
||
|
ps = set(primes(1000000))
|
||
|
return len([p for p in ps if is_circular(p, ps)])
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
print("e035.py: {}".format(euler_035()))
|
||
|
assert(euler_035() == 55)
|