为什么当你在this program中输入2时,它会返回"2是质数“?根据代码,如果数字除以i的余数等于0,则该数字不是质数。其中i是从(包括)2到该数字的任何数字。但是2除以2的余数是0,那么为什么程序说2是质数呢?
# Python program to check if the input number is prime or not
# take input from the user
num = int(input("Enter a number: "))
# prime numbers are greater than 1
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
# if input number is less than
# or equal to 1, it is not prime
else:
print(num,"is not a prime number")发布于 2015-06-11 07:38:57
因为for i in range(2,2):永远不会为真/不会执行。
想想看range(start, stop)..。start和stop是相同的,所以它不会进入for循环。
2是一个质数,但在这种情况下,if语句不需要计算来确定它是否是质数
发布于 2015-06-11 07:39:59
range(2, 2)实际上是一个空列表,所以for循环根本不会迭代。它直接跳到else子句:
>>> num = 2
>>> range(2, num)
[]
>>> for i in range(2, num):
... print "executing loop"
... else:
... print "done!"
...
done!https://stackoverflow.com/questions/30769105
复制相似问题