4-14,求大神提供详细的解题思路,特别是循环的顺序,感激不尽!!!!
#include <stdio.h>
int main()
{
int m, n;
for(m=2; m<=50; m++)
{
for(n=2; n<m; n++)
{
if(m%n == 0) //m%n
break;
}
if(m == n)
printf("%d ", m);
}
return 0;
}
2017-02-08
这串代码运用了循环嵌套 外层的m循环一次,内层的n开始循环,注意子循环中的if语句,当n循环到m除以n余数为0时停止,开始执行下一条 if语句,如果m等于n,则m为素数,输出m;若m不等于n,则m不为素数,则返回父循环,继续循环。 举个例子: 如果m循环到3,n从2开始循环。n=2时,m除以n余数不为0,继续循环,当n循环到3是,m除以n余数为0;则停止循环 ,开始循环下一条if语句,m等于n等于3,(m==n)结果为真,则输出3,3为素数。 如果m循环到4,n从2开始循环。n=2时,m除以n余数为0,则停止循环;开始循环下一条if语句,m等于4,n等于2, m不等于n,(m==n)结果为假,则返回父循环继续循环m,4不为素数。
举报