Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这个素数程序的一部分对我来说毫无意义_Python - Fatal编程技术网

Python 这个素数程序的一部分对我来说毫无意义

Python 这个素数程序的一部分对我来说毫无意义,python,Python,有人能解释一下吗 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))): i

有人能解释一下吗

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
从数学导入sqrt
计数=1
i=1
当计数小于1000时:
i+=2
对于范围(2,1+int(sqrt(i+1)))内的k:
如果i%k==0:
打破
其他:
#印刷品(i),
计数+=1
#如果计数%20==0:打印“”
打印i

其目标是找到第1000个素数。

如果要测试一个数的素数性,那么测试sqrt(数)以下的所有因子就足够了,因为任何高于sqrt(数)的因子都有一个低于sqrt(数)的对应因子


e、 g.如果你想测试36是否为素数,测试最多6个就足够了——例如,12是36的一个因子,但它的另一个因子是3,你那时已经测试过了。

如果要测试一个数字的素数,那么测试所有的因子到sqrt(数字)就足够了,因为任何高于sqrt(数字)的因子具有低于sqrt(编号)的相应系数


e、 g.如果你想测试36是否为素数,那么最多测试6就足够了——例如,12是36的一个因子,但它的另一个因子是3,到那时你已经测试过了。

对于任何给定的复合数n,我们可以证明它的至少一个素数因子必须小于或等于√N(我不知道这个众所周知的事实的名称,但证明它几乎是微不足道的,因为任何大于sqrt(n)的素数因子都必须有一个小于或等于它的对应因子)。因此,这种天真的方法只是通过这里描述的算法来实现的:还要注意,Python循环上的“else”关闭是针对这样的情况,即正在执行搜索。搜索因子或增加计数。对于任何给定的复合数n,我们可以证明它的至少一个素因子必须小于或等于√N(我不知道这个众所周知的事实的名称,但证明它几乎是微不足道的,因为任何大于sqrt(n)的素数因子都必须有一个小于或等于它的对应因子)。因此,这种天真的方法只是通过这里描述的算法来实现的:还要注意,Python循环上的“else”关闭是针对这样的情况,即正在执行搜索。搜索因子或递增计数。