求100到200间素数,为什么不能十个数一行换行输出来啊?

2024-11-30 01:58:03
推荐回答(2个)
回答1:

#include
#include
void main()
{
int a,b,i,k,n=0;
for(a=101;a<=200;a++)
{
k=sqrt(a);
b=1; //每次判断一个数之前 b都要初始化为1,也就是真
for(i=2,b=1,n=0;i<=k;i++)
if(a%i==0) b=0;
if(b)
{
n=n+1; //这里移动到前面 剔除第一个0的情况。

if(n%10==0) printf("\n");
printf("%6d",a);
}
}
}

回答2:

#include
#include
int main()
{
int a,b,i,k,n=0;
for(a=101;a<=200;a++)
{
k=sqrt(a);
for(i=2,b=1;i<=k;i++) //n不该在这赋值
if(a%i==0) b=0;
if(b)
{
if(n%10==0) printf("\n");
n=n+1;

printf("%6d",a);
}
}
}