我想输出100以内的质数,为什么下面程序输不出来
#include<stdio.h>
#include <math.h>
main()
{
int a[101]={1,1},i,j;
for(i=2;i<=sqrt(100);i++)
if(a[i]==0)
for(j=i+1;j<=100;j+=i)
{
a[j]=1;
}
for(i=0;i<=100;i++)
{
if(a[i]==0) printf("%5d",i);
}
printf("\n");
}
main()
{
int a[101]={1,1},i,j;
for(i=2;i<=sqrt(100);i++)
for(j=i+i;j<=100;j+=i)
{
a[j]=1;
}
for(i=0;i<=100;i++)
{
if(a[i]==0) printf("%5d",i);
}
printf("\n");
}
第一个if(a[i]==0)可以不要,第二个循环j=i+1改成j=2i
代码有点小错误
#include<stdio.h>
#include <math.h>
main()
{
int a[101]={1,1},i,j;
for(i=2;i<=sqrt(100);i++)
if(a[i]==0)
for(j=i+i;j<=100;j+=i)
{
a[j]=1;
}
for(i=0;i<=100;i++)
{
if(a[i]==0) printf("%5d",i);
}
printf("\n");
}