gpt4 book ai didi

python-3.x - 我用于查找素数的代码运行良好,但打印出意外的 9 值。解释如何?

转载 作者:行者123 更新时间:2023-12-04 01:48:14 25 4
gpt4 key购买 nike

我已经编写了一个逻辑来查找质数直到某个输入值。它工作正常,但打印出意外的 9,这与逻辑不符,因为 9%3 将为 0,它必须跳过该数字。

n = int(input())
for i in range(2,n+1):
for j in range(2,n+1):
if i%j == 0 and i!=j:
break
else:
print(i,end=" ")
break

Input : 20
Output : 2 3 5 7 9 11 13 15 17 19

最佳答案

一旦发现它不能被任何其他数字整除,你就会输出一个候选数字,所以对于候选数字 9,只要内循环从除数数字 2 开始,它就会立即进入 else阻止并输出数字和 break内部循环,因为 9 不能被 2 整除。

您应该等到内循环中的所有除数都用完后再确定外循环中的候选数确实是素数,为此您可以使用 for-else构造:

n = int(input())
for i in range(2, n + 1):
for j in range(2, n + 1):
if i % j == 0 and i != j:
break
else:
print(i, end=" ")

示例输入/输出:
20
2 3 5 7 11 13 17 19

关于python-3.x - 我用于查找素数的代码运行良好,但打印出意外的 9 值。解释如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54352772/

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