#!/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()