输出100到200之间的所有素数 并以10个数为一行输出

2024-11-26 09:18:18
推荐回答(5个)
回答1:

判断是否是素数只要满足t*t<=i就行了for(t=2;t<=i;t++)改为for(t=2;t*t<=i;t++),后面的一起都改了
以10个数为一行输出,可以设置一个变量k,赋初值0
if(t*t==i)
{ printf("%d",i);
printf(" ");
if(++k%10==0)printf("\n");
}

回答2:

#include
#include
void main()
{
const int n=200;
int i=1,j,count=0,sieve[n+1];
for(j=1;j sieve[j]=j; // 把1~n存入sieve[n]
while(i {
while(sieve[i]==1)
i++; // 跳过值为1的分量,表示下一个分量必为一素数
cout< // 等价于cout.width(4)
count++;
if(count%10==0)
cout< for(j=i;j sieve[j]=1;
}
}

回答3:

循环次数可以再减少,判断到2~ sqrt(i)就行了
*************

#include
#include

void main()
{
int i,t;
int count = 0;
int bflag = 0; /* break标记 */
for (i=100;i<=200;i++)
{
bflag = 0;
for (t=2;t<=sqrt(i); t++)
{
if (i%t==0)
{
bflag = 1;
break;
}
}

if (!bflag)
{
printf("%4d",i);
++count;
if (count%10 == 0)
{
count = 0;
printf("\n");
}
}
}
printf("\n");
}

回答4:

#include
void main()
{
int i,t;int j=0;

for(i=100;i<=200;i++)
{
for(t=2;t<=i;t++)
if(i%t==0) break;
if(t==i)
{
printf("%d",i);
printf(" ");
j++;
if(j==10)
{
printf("%c",'\n');
j=0;
}
}
}
}

回答5:

#include
void
main()
{
int
i,t;int
j=0;
for(i=100;i<=200;i++)
{
for(t=2;t<=i;t++)
if(i%t==0)
break;
if(t==i)
{
printf("%d",i);
printf("
");
j++;
if(j==10)
{
printf("%c",'\n');
j=0;
}
}
}
}