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

来源:4-14 结束语句之break语句

慕勒0452018

2018-12-14 20:04

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

{

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

                {

                  if(m%n==0)

                 }

         if(n==m)

}

写回答 关注

4回答

  • Scorp_
    2019-01-16 11:17:10

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

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

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

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

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

    qq_慕用5...

    能够理解这个

    2019-02-16 13:00:44

    共 1 条回复 >

  • 在赶往大神的路上
    2018-12-16 12:04:30
    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”,循环往复直到循环结束。
     //不知道你能理解不,我也是没入门呢,正在学,这个需要你自己理解。

    卡爷爷

    666

    2019-02-13 13:57:06

    共 1 条回复 >

  • 慕勒0452018
    2018-12-15 18:17:44

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

  • 慕函数7531614
    2018-12-14 21:18:45

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

    慕码人308... 回复慕勒0452...

    if(m%n==0)这个判断对吧,判断完接下去要进行n的自增n++,然后在回到第二个for那边再进行判断。所以最后跳出来的会有n=m的

    2018-12-22 15:00:50

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926207 学习 · 20797 问题

查看课程

相似问题