[英]Finding the nth number of primes
我不知道為什么這行不通。 請幫我
from math import sqrt
pN = 0
numPrimes = 0
num = 1
def checkPrime(x):
'''Check\'s whether a number is a prime or not'''
prime = True
if(x==2):
prime = True
elif(x%2==0):
prime=False
else:
root=int(sqrt(x))
for i in range(3,root,2):
if(x%i==0):
prime=False
break
return prime
n = int(input("Find n number of primes. N being:"))
while( numPrimes != n ):
if( checkPrime( num ) == True ):
numPrimes += 1
pN = num
print("{0}: {1}".format(numPrimes,pN))
num += 1
print("Prime {0} is: {1}".format(n,pN))
你需要改變
root=int(sqrt(x))
進入
root=int(sqrt(x))+1
(以9例如, int(sqrt(9))
為3
,和range(3, 3, 2)
是[]
和你真的想測試除以3
!)。
從技術上講,1也不是質數。 加
if(x<=1):
prime = False
並且您將獲得與http://www.rsok.com/~jrm/first100primes.html相同的結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.