其代码如下:
#include<stdio.h>
#define MAXNUM 1000
void main()
{
int i,j,c=0;
int prime[MAXNUM+1]; /*建立数组,i对应的元素为1,则i为素数*/
prime[0]=prime[1]=0;
for(i=2;i<=MAXNUM;i++)
{
prime[i]=1; //先让所有的元素为1
}
for(i=2;i*i<=MAXNUM;i++)
{
if(1==prime[i]) //若该元素已被排除,则不再求其倍数
{
for(j=i;i*j<=MAXNUM;j++)
{
prime[i*j]=0; //将非素数置0
}
}
}
for(i=2;i<=MAXNUM;i++) //输出
{
if(1==prime[i])
{
printf("%4d",i);
c++;
if(0==c%10)
{
printf("\n");
}
}
}
printf("\n共有%d个素数\n",c);
getchar();
}