为什么要写if(m==n)

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

慕粉1631391925

2017-04-04 22:54

#include <stdio.h>

int main()

{

    int m, n;

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

    {

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

        {

            if(  m%n==0    )       //什么条件下跳出当前循环

             break;                //这里应该退出当前循环了

}

        if(m == n)   

            printf("%d  ", m);

}

return 0;    

}


写回答 关注

4回答

  • 慕无忌6293441
    2017-04-05 20:13:42

    如果 m==n说明内层循环中 n从2循环到m-1的过程中m都不能被n整除,这就说明m不能被从2到m-1的整数整除 ,即m为素数。

  • 慕无忌6293441
    2017-04-05 20:11:39

    如果 m==n说明内层循环中 n从2循环到了m-1,这就说明m不能被从2到m-1的整数整除 ,即m为素数。

  • 慕粉4057600
    2017-04-04 23:31:30

    当m为素数时,n循环到了m-1时,m仍不能被n整除,便跳出了for(n=2;n<m;n++)这个循环,但跳出时n已经加了1,即n==m,便能判断m为素数。

  • wvvip
    2017-04-04 23:18:40

    素数是只能够被1和自己整除的数字。当运行到跳出来的n=m时,说明在被自己整除之前都没有比1大的数能够整除它(如果跳出来的n!=m的话,就说明有其他因数了)。比如m=4的时候,首先跳出来的n是2,并不是自身,就说明这个n=2是m=4的一个因数,从而说明4不是素数。

C语言入门

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

926028 学习 · 20793 问题

查看课程

相似问题