【发布时间】:2022-12-12 23:28:58
【问题描述】:
我正在尝试创建一个 for 循环,遍历范围内的数字并检查它们是否可整除。这是我的代码:
user_input = input("pick a number")
for i in range(1, int(user_input)):
if int(user_input) % i == 0 and i != 1 and i != int(user_input):
print("Your number is prime")
else:
print("your number is not prime")
即使对于素数,第二个条件也会继续执行。我究竟做错了什么?
【问题讨论】:
-
你测试
i != 1。第一个循环总是有i == 1,因此,它会告诉你它不是质数。你绝对不应该举报任何事物虽然在循环中是素数;在排除所有可能的因素之前,您不知道它是质数。将您的range更改为从2开始,而不是1,然后删除那部分测试,并让它报告不是当它被均匀分割时是素数(现在你报告素数时是均匀分割,这是坚果)。 -
无论条件是否满足,你都会一次又一次地循环。逻辑错了——想想循环里应该有什么,循环后应该做什么。每个输入都应该产生一个打印语句。