首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个质数算法不说2不是质数呢?

为什么这个质数算法不说2不是质数呢?
EN

Stack Overflow用户
提问于 2015-06-11 07:34:50
回答 2查看 69关注 0票数 0

为什么当你在this program中输入2时,它会返回"2是质数“?根据代码,如果数字除以i的余数等于0,则该数字不是质数。其中i是从(包括)2到该数字的任何数字。但是2除以2的余数是0,那么为什么程序说2是质数呢?

代码语言:javascript
复制
# 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")
EN

回答 2

Stack Overflow用户

发布于 2015-06-11 07:38:57

因为for i in range(2,2):永远不会为真/不会执行。

想想看range(start, stop)..。start和stop是相同的,所以它不会进入for循环。

2是一个质数,但在这种情况下,if语句不需要计算来确定它是否是质数

票数 3
EN

Stack Overflow用户

发布于 2015-06-11 07:39:59

range(2, 2)实际上是一个空列表,所以for循环根本不会迭代。它直接跳到else子句:

代码语言:javascript
复制
>>> num = 2
>>> range(2, num)
[]
>>> for i in range(2, num):
...     print "executing loop"
... else:
...     print "done!"
... 
done!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30769105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档