gpt4 book ai didi

python - python中的素数使用for循环和break

转载 作者:行者123 更新时间:2023-11-30 22:36:08 25 4
gpt4 key购买 nike

我编写了一个 python 代码来查找 2 到 30 之间的素数。但是我的代码没有计算 2 和 3。谁能告诉我这段代码有什么问题吗?

for i in range(2, 30):
for j in range(2, i-1):
if ((i % j) == 0):
print(i, "is not a prime number")
break
else:
print(i, "is a prime number")
break

最佳答案

你的代码逻辑是错误的。 else 子句应附加到内部 for 循环,因此仅当循环耗尽而未找到除数时才会执行。

for i in range(2, 30):
for j in range(2, i-1):
if ((i % j) == 0):
print(i, "is not a prime number")
break
else:
print(i, "is a prime number")

另请注意,外循环最多只能运行 29,因为上限不包含在范围内。内部循环不包括 i - 1,但这完全没问题,因为任何非平凡除数都小于 i - 1

对于 2 和 3,根本不会进入内部循环,因为在这些情况下范围将为空。这也很好,因为 else 子句将立即输入。

关于python - python中的素数使用for循环和break,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44304255/

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