Here is my solution for Project Euler 35. (Find the number of circular primes below 1,000,000. Circular meaning all rotations of the digits are prime, i.e. 197, 719, 971.) The code takes about 30 minutes to run. Can you help me identify which parts of the algorithm are hogging up computation time?
I know there are many solutions out there, I just want to know why this one is soooo slow. I suspect it has something to do with the p.count function call.
pis initialized to a list of all primes below 1 million using the Sieve of Eratosthenes.totalis initialized to 0.
for i in p:
primer = str(i)
circ = 1
for j in range(len(primer)-1):
primer = primer[1:]+primer[:1]
if (p.count(int(primer)) == 1):
circ += 1
if circ == len(primer):
total += 1