我想知道为什么会用到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;
}
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;
}