0 python
有人可以解释一下
for k in range(2, 1+int(sqrt(i+1))):
Run Code Online (Sandbox Code Playgroud)
对我来说?我很难理解如何
1+int(sqrt(i+1)
Run Code Online (Sandbox Code Playgroud)
真的很有效.
我理解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
Run Code Online (Sandbox Code Playgroud)
其目标是找到第1000个素数.
如果要测试一个数字的素数,那么测试所有因子直到sqrt(数字)就足够了,因为任何高于sqrt(数字)的因子都有一个低于sqrt(数字)的相应因子.
例如,如果你想测试36是否是素数,那么测试最多6就足够了 - 例如,12是36的因子,但是它的另一个因子是3,那时你已经测试过了.