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

两个起始值都是一样后面也是同样加一,那么不就一直有m%n==0

#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)   //n循环结束后,如果m=n的话就输出m

            printf("%d  ", m);

}

return 0;    

}


正在回答

2 回答

不一样,跳出第二个循环后就会回到到第一个循环,执行if(m==n){};m++;后就会再次来到第二循环,此时n被再次定义为2,n!=m。


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

你的第二个for循环应该是在第一个for循环之下的,这是一个双重循环。

比如说n=3的时候,m会循环,n被每一个不同的m取余。

       3%2!=0  继续第二个循环

       3%3=0    结束第二个循环

          输出3

 

   

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

举报

0/150
提交
取消

两个起始值都是一样后面也是同样加一,那么不就一直有m%n==0

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