首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python的素数

使用python的素数
EN

Stack Overflow用户
提问于 2019-10-02 00:40:52
回答 1查看 78关注 0票数 0

所以我已经开始学习python(python3),我得到了这个打印质数的程序,这是我的代码::

代码语言:javascript
复制
a=int(input("Enter starting number"))
b=int(input("Enter the ending number"))
while(a!=b):
    for n in range(2, a-1):
        c=a%n
        if(c!=0):
            print(a)

        elif(c==0):
            break
    a+=1

我确实意识到找出质数的代码是错误的,因为它会打印一些数字,比如9,15,21...which不是质数,但先听我说完。

我运行了程序,并将值保留为a=4 b=7

我期望输出是:5 5 5 7 7 7

我得到的答案是:55

我不能理解这个输出背后的原因。

我能得到输出的解释吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-02 03:19:23

第一个问题是,在循环中,range(2,a-1)不包括最后一个值。如果您将其更改为range(2,a),则包含您想要的最后一个值,但它不包含a的值。这将打印5 5 5。要使7显示出来,请查看While循环的逻辑。循环说,虽然a不等于b,但要做循环中的事情。因此,一旦a= b,循环将不再运行。您希望循环运行到它等于b,运行最后一次,然后退出。因此,您需要将其更改为,while a != b+1。这将得到您期望的输出。下面是更改后的代码。

代码语言:javascript
复制
a=int(input("Enter starting number"))
b=int(input("Enter the ending number"))
while(a!=b+1):
    for n in range(2, a):
        c=a%n
        if(c!=0):
            print(a)

        elif(c==0):
            break
    a+=1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58189098

复制
相关文章

相似问题

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