0
有人能解釋部分只是沒了感覺我
for k in range(2, 1+int(sqrt(i+1))):
給我嗎?我很難理解如何
1+int(sqrt(i+1)
真正的作品。
據我所知1
被添加到i
,它是平方根,它必須是一個整數。但我不理解如何達到整個計劃的目標
from math import sqrt
count = 1
i = 1
while count < 1000:
i += 2
for k in range(2, 1+int(sqrt(i+1))):
if i%k == 0:
break
else:
# print(i) ,
count += 1
# if count%20==0: print ""
print i
其目標是找到第1000個素數。
對於任何給定的複合數n,我們可以證明它的至少一個素因子必須小於或等於√n。 (我不知道這個衆所周知的事實的名稱,但它幾乎沒有什麼證明,因爲任何大於sqrt(n)的素因必須具有小於或等於它的對應因子)。 所以這個幼稚的方法是簡單地實現這裏所描述的算法: http://en.wikipedia.org/wiki/Prime_number#Trial_division 另外請注意,「其他」接近上一個Python循環是對的情況下,像這是正在執行搜索的地方。搜索因子或增加計數。 –