【发布时间】:2017-04-12 14:34:17
【问题描述】:
我正在创建一个 Python 程序来确定一个数字是否为素数。这就是我所拥有的:
print("Please enter your number:")
number = int(input())
if number > 2:
for i in range (2,number):
if (number % i) == 0:
print(number, "is not prime")
break
else:
print(number, "is prime")
break
else:
print(number, "is not prime")
它适用于除 2 之外的所有用例。为什么?我该如何解决?
【问题讨论】:
-
这不适用于“除 2 之外的所有用例”。尝试使用数字 9。您的循环中有
print "is prime",但在整个循环完成之前您无法知道它是素数。此外,如果数字为 2,您将直接跳到“不是素数”。 -
我修好了。我不得不将“else: number is prime”放在 for 循环之外。
标签: python python-3.x loops primes