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

我想知道为什么会用到m%n==0。这个程序大概的思路是怎么样的。我才刚入坑没多久。是个新人

我想知道为什么会用到m%n==0。这个程序大概的思路是怎么样的。我才刚入坑没多久。是个新人

C C++
续点一支烟丶 2017-02-11 00:00:40
#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) printf("%d ", m); } getchar(); return 0; }
查看完整描述

2 回答

已采纳
?
望远

TA贡献1017条经验 获得超1032个赞

这里是输出2~50之间的素数,采用的就是一个思路:如果一个数n不能被2~n-1整除,那么这个数就是素数,如果可以整除,那么还程序的内循环就会提前跳出,提前跳出后m>n而正常跳出的时候是n=m,可以通过这个来判断是否是素数,最后依次输出。
查看完整回答
1 反对 回复 2017-02-11
?
望远

TA贡献1017条经验 获得超1032个赞

#include<stdio.h> 
int main() 
{
     int m, n; 
     for (m = 2; m <= 50; m++) //外层循环控制要判断的范围 2-50
     {
          for (n = 2; n < m; n ++ ) //内层循环对m依次判断,n的取值是2—m-1,如果内循环正常结束那么n==m,2是一个特例,内循环条件不满足,直接跳出。
             { 
                 if (m % n ==0) //如果m能够被n整除,就跳出内循环
                     break; 
             } 
         if (m == n) //判断m?=n,如果相等就是素数,当不是素数时n<m
             printf("%d ", m); 打印输出素数
      } 
      getchar();
      return 0; 
}


查看完整回答
1 反对 回复 2017-02-11
  • 2 回答
  • 0 关注
  • 1434 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信