问答详情
源自:4-14 结束语句之break语句

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

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

提问者:qq_慕娘4133401 2018-12-13 10:39

个回答

  • Scorp_
    2019-01-16 11:20:32

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

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

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

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

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


  • qq_莫欺少年轻狂_tuxG06
    2018-12-13 13:05:22

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