为了账号安全,请及时绑定邮箱和手机立即绑定

为什么第二个for循环内n<m,跳出循环后n 能等于m

for(m=2;m<=50;m++)

{

        for(n=2;n<m;n++)

                {

                  if(m%n==0)

                 }

         if(n==m)

}

正在回答

4 回答

第一层循环遍历从2-50的所有数;第二层循环遍历大于2小于第一层数字的所有数;

根据定义,当一个数只能被只能被1和它本身整除的数字是素数。

把第一句话翻成人话就是   找一个数字,除以比他小的每一个数字,如果求余等于0的结果不是他本身(能整除别的数字) 即这个数不是素数

如果是他本身,即这个数是素数

这也就是下两句的判断逻辑

2 回复 有任何疑惑可以回复我~
#1

qq_慕用5096974

能够理解这个
2019-02-16 回复 有任何疑惑可以回复我~
for循环是
for(1;2;3)
{
 代码。。。
 }
 //1,先运行for里的“1”和“2”然后运行{}里的,之后返回来运行“3”,
 //2,按照这样的话,M的初始值是2,N的也是2,m<=50是真(值为非0,可以用printf("%d\n",m<=50);看到),
 //然后执行第二个for循环
 //3,n=2,n<m为假(值为0)不执行if(m%n == 0)
 //4,接着执行if(n == m),然后执行m++(就是m加1)
 //5,再执行“1”和“2”,循环往复直到循环结束。
 //不知道你能理解不,我也是没入门呢,正在学,这个需要你自己理解。
2 回复 有任何疑惑可以回复我~
#1

卡爷爷

666
2019-02-13 回复 有任何疑惑可以回复我~

那怎么可能n能被m 整除呢,按你的说n只比m小一

1 回复 有任何疑惑可以回复我~

因为后面有个n++;n++的作用是在运算结束后n的值加一。

1 回复 有任何疑惑可以回复我~
#1

慕勒0452018 提问者

那怎么可能n能被m 整除呢,按你的说n只比m小一 2秒前
2018-12-15 回复 有任何疑惑可以回复我~
#2

慕码人3084263 回复 慕勒0452018 提问者

if(m%n==0)这个判断对吧,判断完接下去要进行n的自增n++,然后在回到第二个for那边再进行判断。所以最后跳出来的会有n=m的
2018-12-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么第二个for循环内n<m,跳出循环后n 能等于m

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信