为什么在第一个if后面加了printf就错误了呢?不是很明白
#include <stdio.h>
int main()
{
int m, n;
for(m=2; m<=50; m++)
{
for(n=2; n<m; n++)
{
if(m%n==0)
{
printf("%d",m); //什么条件下跳出当前循环
break;
} //这里应该退出当前循环了
}
if(m == n) //n循环结束后,如果m=n的话就输出m
printf("%d ", m);
}
return 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);
}
return 0;
}
//试试这个,明白请采纳ヽ( ̄▽ ̄)ノ
因为素数是只能被1和自身整除,也就是说不能被(1,m)区间的任何一个数整除,只要m%n==0就不是素数,直接break跳出循环进行下一个数字的验证,不用打印出来了
你的printf("%d",m);这句句话差了个空格 你可以改成printf("%d-",m);这样结果你可能就知道为什么了~