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

#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; }
续点一支烟丶
浏览 1435回答 2
2回答

望远

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

望远

#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;  }
打开App,查看更多内容
随时随地看视频慕课网APP