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

哪位大佬能给我解释一下这个过程,我懵了。

#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 回答

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

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

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

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

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


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

我第一下看到也懵了,是这样的,第一个循环你应该知道什么作用,第二个循环的意思是如果第一个循环的数能被大于2且小于这个数的数整除,就执行break即不输出这个数是素数。

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

qq_慕娘4133401 提问者

后面为什么要if(m==n)?
2018-12-18 回复 有任何疑惑可以回复我~
#2

慕用8099757 回复 qq_慕娘4133401 提问者

如果这个能被整除的数 是本身的话 就是素数啊
2019-01-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

哪位大佬能给我解释一下这个过程,我懵了。

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