|
|
1
1
当然,它不会起作用:以i=2,x=6为例,6不是素数,所以你去掉它。
当然,最重要的一点是:您不能更改正在迭代的列表!当您从列表中删除项目x时,您的下一次迭代将无效,列表将被损坏! 如果询问x是否仍在pnumber1b中,请尝试添加另一个:
或者只需在remove命令后添加break,因为不需要继续在数字x上运行。
|
|
|
2
1
有一些不明确的行为使第一个代码工作,而第二个代码却没有。
但这并不是:
然后它将到达
这将失败,因为对于具有多个倍数的数字,它将尝试删除该项两次,并在未找到已删除的项时引发异常。 然后,您可以添加一个中断,以在找到第一个后停止查找倍数:
还有这个 将 除了删除列表项之外 迭代列表时 有效的方法是创建一个新列表,将非素数添加到该列表中,然后, 之后
|
|
|
3
1
@ddor254 您的第一组代码不正确,它只会删除偶数。 我将其更改为:
现在可以了 |
|
|
4
1
此方法要求用一些已知的素数值填充数组。添加到列表中的素数越多,检查器将变得越精确。
可以通过以下方式对您有利:
然后,您可以检查安装了Python的目录以查找文本文档,除非您在文件名中指定了如下目录:
我从这个来源获得了第一个10000000个素数: http://www.primos.mat.br/2T_en.html
该输出返回:
|