【发布时间】:2012-05-26 13:59:00
【问题描述】:
我尝试了几种不同的方法来获得 10001 素数。
def isPrime(value):
if ((2**value)-2)%value==0:
return True
def nthPrime(n):
count = 0
value = 1
while count < n:
value += 1
if isPrime(value):
count += 1
return value
当参数为 10001 时,返回 103903。当我期待 104743 时。
我试过了:
primes = []
for i in range(2,105000):
if ((2**i) - 2) % i == 0:
primes.append(i)
print primes[10001] ---> 103903
【问题讨论】:
-
你的
isPrime函数对数字的回答是什么:1105、1729、2465?您一眼就知道 1105 和 2465 不是 素数...(提示:en.wikipedia.org/wiki/Carmichael_number) -
伪素数 嗯,我依稀记得以前遇到过这个,但是,这给了它一些上下文。好东西,谢谢!