鱼C论坛

 找回密码
 立即注册
查看: 1108|回复: 9

[已解决]大神帮我看看,这3段代码有什么区别

[复制链接]
发表于 2018-1-14 08:57:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
list=[]
c=1
for i in range(2,100):   
    y=2                  
    while i%y!=0 and y<i:
            c=y
            y+=1
    if i==c+1:
        print(i)


list=[]
c=1
for i in range(2,100):   
    y=2                  
    while i%y!=0:
       if y<i:
            c=y
            y+=1
    if i==c+1:
        print(i)


        
list=[]
c=1
for i in range(2,100):   
    y=2                  
    while y<i:
       if i%y!=0:
            c=y
            y+=1
    if i==c+1:
        print(i)
最佳答案
2018-1-14 11:40:35
cq3136248 发表于 2018-1-14 11:35
第一个和第二个输的i 都是2到100的所有质数,第三个就只有2,3。  求解第三个

第三个if判断条件什么时候满足?你思考一下,不管满不满足这个判断,y是不是都应该自增
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-14 10:17:47 From FishC Mobile | 显示全部楼层
没有区别
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-14 10:55:10 | 显示全部楼层

没有区别,输出过后,显示不全一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-14 11:31:56 From FishC Mobile | 显示全部楼层
cq3136248 发表于 2018-1-14 10:55
没有区别,输出过后,显示不全一样

原因出在y自增判断,第一个每次都自增,后面的不是每次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-14 11:35:37 | 显示全部楼层
BngThea 发表于 2018-1-14 11:31
原因出在y自增判断,第一个每次都自增,后面的不是每次

第一个和第二个输的i 都是2到100的所有质数,第三个就只有2,3。  求解第三个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-14 11:40:35 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
cq3136248 发表于 2018-1-14 11:35
第一个和第二个输的i 都是2到100的所有质数,第三个就只有2,3。  求解第三个

第三个if判断条件什么时候满足?你思考一下,不管满不满足这个判断,y是不是都应该自增
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-14 12:13:00 | 显示全部楼层
BngThea 发表于 2018-1-14 11:40
第三个if判断条件什么时候满足?你思考一下,不管满不满足这个判断,y是不是都应该自增

看了半天还是看不懂,我是不是没救了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-14 12:40:11 | 显示全部楼层
cq3136248 发表于 2018-1-14 12:13
看了半天还是看不懂,我是不是没救了。


c=1
for i in range(2,100):   
    y=2                  
    while y<i:
        if i%y!=0:
            c=y
            y+=1
        else:
            break
    if i==c+1:
        print(i)
第三段代码加了一个else语句,就和第一,第二一样了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-14 14:32:01 From FishC Mobile | 显示全部楼层
cq3136248 发表于 2018-1-14 12:40
c=1
for i in range(2,100):   
    y=2                  

你把i=4代进去分析一下试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-14 14:41:27 | 显示全部楼层
BngThea 发表于 2018-1-14 14:32
你把i=4代进去分析一下试试

没问题了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 18:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表