素数 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