【发布时间】:2020-01-21 09:49:05
【问题描述】:
我在 Project Euler 上遇到过这个问题,问题是
数字 197 被称为圆素数,因为 数字:197、971 和 719 本身就是质数。
100 以下的素数有 13 个:2、3、5、7、11、13、17、31、 37、71、73、79 和 97。
一百万以下有多少个圆素数?
经过多次修改后,我的代码如下所示:
def circularPrimes(n):
primeList, sieve, circularPrime = [], [True] * n, True
for p in range(2,n):
if sieve[p]:
pi = str(p)
for i in range(0,len(pi)):
rotatedNumber = pi[i:len(pi)] + pi[0:i]
rotatedNumber1 = int(rotatedNumber)
if not sieve[rotatedNumber1]:
circularPrime = False
if circularPrime:
primeList.append(p)
for i in range(p*p,n,p):
sieve[i] = False
return len(primeList)
print(circularPrimes(1000000))
为什么它不起作用,为什么不管我放什么它都会返回 7? 感谢所有批评
【问题讨论】:
标签: python