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

怎样看这个代码?什么时候才执行n++?

#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;   
}

正在回答

4 回答

当n的值小于m时,执行n++。当m为n的倍数时跳出循环,执行下一语句,判断m与n是否相等,相等即输出m(此时m为质数),若不等进入下一循环,m++;

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

慕娘6268485 提问者

那这样m,n的值不就一直一样了?
2018-08-17 回复 有任何疑惑可以回复我~
#2

慕函数6546506 回复 慕娘6268485 提问者

这个代码就是用来求50以内的质数,只有当m为质数时,n才会一直n++到与m相等从而m%n==0(此时达到质数条件,质数的因数只有1和它本身),否则则进入下一循环(m++);你可以给m分别取一个质数一个非质数(小一点的)带入程序,就很容易弄懂了。
2018-08-18 回复 有任何疑惑可以回复我~
#3

慕娘6268485 提问者 回复 慕函数6546506

是不是每一次子循环n都从2开始?
2018-08-18 回复 有任何疑惑可以回复我~
#4

慕函数6546506 回复 慕娘6268485 提问者

嗯,是的从2一直到m。
2018-08-18 回复 有任何疑惑可以回复我~
#5

慕娘6268485 提问者

非常感谢!
2018-08-18 回复 有任何疑惑可以回复我~
#6

蚕豆C 回复 慕娘6268485 提问者

++了
2018-08-28 回复 有任何疑惑可以回复我~
#7

蚕豆C 回复 慕娘6268485 提问者

++了
2018-08-28 回复 有任何疑惑可以回复我~
查看4条回复

可以自己试下~~~加了引号输出的是sum,不加就是显示计算完的值16IE6

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

举报

0/150
提交
取消

怎样看这个代码?什么时候才执行n++?

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