2019-09-22 13:23:07 +02:00

52 lines
907 B
Python

#!/usr/bin/python3
from timeit import default_timer
from projecteuler import sieve
def is_circular_prime(n):
global primes
if primes[n] == 0:
return False
tmp = n
count = 0
while tmp > 0:
if tmp % 2 == 0:
return False
count = count + 1
tmp = tmp // 10
for i in range(1, count):
n = n % (10 ** (count - 1)) * 10 + n // (10 ** (count - 1))
if primes[n] == 0:
return False
return True
def main():
start = default_timer()
global primes
N = 1000000
primes = sieve(N)
count = 13
for i in range(101, N, 2):
if is_circular_prime(i):
count = count + 1
end = default_timer()
print('Project Euler, Problem 35')
print('Answer: {}'.format(count))
print('Elapsed time: {:.9f} seconds'.format(end - start))
if __name__ == '__main__':
main()