//建立X以内的素数表prim,prim[i]=0则i为素数,=1不是质数
#include <stdio.h>
void maketable(int x)
{
int i,j,prim[1000];
memset(prim,0,sizeof(prim));//初始化质数表
prim[0]=1;
prim[1]=1;
prim[2]=0; //用筛选法求X以内的质数表
for(i=2;i<=x;i++)
if (prim[i]==0)
{
int j=2*i;
while(j<=x)
{
prim[j]=1;
j=j+i;
}
}
for(j=0;j<=x;j++)
if(prim[j]==0)
printf("%d\t",j);
}
void main()
{
maketable(200);
}
运行结果:
#include <stdio.h>
void maketable(int x)
{
int i,j,prim[1000];
memset(prim,0,sizeof(prim));//初始化质数表
prim[0]=1;
prim[1]=1;
prim[2]=0; //用筛选法求X以内的质数表
for(i=2;i<=x;i++)
if (prim[i]==0)
{
int j=2*i;
while(j<=x)
{
prim[j]=1;
j=j+i;
}
}
for(j=0;j<=x;j++)
if(prim[j]==0)
printf("%d\t",j);
}
void main()
{
maketable(200);
}
运行结果: