gpt4 book ai didi

python - 素数打印机停止在 251,为什么?

转载 作者:IT老高 更新时间:2023-10-28 21:52:37 26 4
gpt4 key购买 nike

我今天开始学习 Python,我想创建一个程序来打印从 0 到 10 000 的所有素数。我设法让我的程序打印出直到 251 的所有素数,然后停止打印出数字。为什么会这样?

代码如下:

for numberToCheck in range(2,10000):
divider = 2
while numberToCheck > divider:
if numberToCheck % divider is 0:
break
else:
divider += 1
if numberToCheck is divider:
print(numberToCheck, "is a prime number.")

最佳答案

问题在于您使用的是 is 而不是 ==is 操作符执行 object identity 比较,由于实现细节251 是 256 以下的最大素数(检查 here ,下一个素数是 257),之后 is 返回 False:

>>> 254 + 1 is 255
True
>>> 255 + 1 is 256
True
>>> 256 + 1 is 257
False

等式运算符是==:

>>> 254 + 1 == 255
True
>>> 255 + 1 == 256
True
>>> 256 + 1 == 257
True

关于python - 素数打印机停止在 251,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37901094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com