鱼C论坛

 找回密码
 立即注册
查看: 2738|回复: 3

[已解决]小白求帮助

[复制链接]
发表于 2022-10-13 17:23:27 | 显示全部楼层 |阅读模式
4鱼币
for i in range(100,1000):
    j=2
    flag=1
    while j<i:
        if i % j==0:
            flag=0
            break

        j+=1
        
    if flag==1:
        print(i,end=" ")

这段代码用于输出100-1000素数
其中的
j = 2
flag = 1
和后面的
flag = 0
flag == 1
有什么作用 j = 3或者 j = 5 输出也是一样的
实在看不懂
最佳答案
2022-10-13 17:23:28
看一下下面的注释
for i in range(100,1000):
    j=2             #素数只能被1和本身整除,所以需要除一下2到n-1之间所有的数,所以初始值设为2
    flag=1         #这是素数与否的标志,当flag为1时,设定该数为素数,打印
    while j<i:
        if i % j==0:        #判断是否为素数,结果就为0就是能被整除
            flag=0              #因为能被整除所以不是素数,flag赋值为0
            break               #不是素数,所以跳出循环,进行下一个数的判断

        j+=1
        
    if flag==1:             #flag=1是素数,所以打印出来
        print(i,end=" ")

最佳答案

查看完整内容

看一下下面的注释
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 17:23:28 | 显示全部楼层    本楼为最佳答案   
看一下下面的注释
for i in range(100,1000):
    j=2             #素数只能被1和本身整除,所以需要除一下2到n-1之间所有的数,所以初始值设为2
    flag=1         #这是素数与否的标志,当flag为1时,设定该数为素数,打印
    while j<i:
        if i % j==0:        #判断是否为素数,结果就为0就是能被整除
            flag=0              #因为能被整除所以不是素数,flag赋值为0
            break               #不是素数,所以跳出循环,进行下一个数的判断

        j+=1
        
    if flag==1:             #flag=1是素数,所以打印出来
        print(i,end=" ")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 17:59:38 | 显示全部楼层
while j<i:
        if i % j==0:
            flag=0
            break

        j+=1
每次循环 j 会 +1,循环条件为 j < i , j 一开始是 j = 2,也就是说,这个循环的 j 就是 2到 i -1
这个循环就是将 i 去除于2到 i-1的数(j),看能不能整除,能就代表 i 不是素数,所以将flag赋值为0
循环结束后判断,flag是否为1,为1,就证明在上面的循环里,i从2到i-1都不被整除,所以是素数,打印
不为1,就代表在上面循环里,i 除于某个2到i-1的数等于0,不是素数,不打印
之后就是for循环下一个i进来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 18:17:24 | 显示全部楼层
【1】j=2 的含义:将所有的数据(100-1000)从2开始筛查,所以 j=2

【2】flag=1的含义:这是一个标志,只要是筛查到素数了,flag=1,立即打印此素数

【3】flag=0的含义:当检测不是素数时,立即赋值为0,结束当前循环,进入到下一个数值的筛查

【4】flag==1的含义:这是进行判断比较,flag=1时证明是素数,进行打印输出

【5】j=3、j=5 的含义:对素数的判断检测,要让它分别除以任何一个数字,看看有没有余数,所以3、5必不可少

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 23:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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