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

为什么m=n就输出m?????

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

正在回答

3 回答

你看,第一个大的for循环控制了被除数的输入为2到五十。第二个for循环控制了除数的范围小于被除数,同时里面的if语句就控制——如果被除数能被除了自身之外的数字整除,那么就用break停止执行该语句,就是不要该数字,而继续判断下一个数字的意思。如果执行到比自身小一的数字还不能整除,即指余数不为零,那么只有自身可以整除,就符合了素数的定义,希望可以帮到你。

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

素数不就是只能除尽1和自身嘛,在m%n==0 的一堆数中,能被其他数除尽的有很多,但是只有被自身整除的才是素数,所以就输出只能被自身整除的,emmmm差点把自己绕进去了

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

m==n的意思就是m等于n

 if(m == n) 
            printf("%d  ", m);

这句话的意思是当m==n时,输出m,不等于时,执行下一语句。


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

举报

0/150
提交
取消

为什么m=n就输出m?????

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