#include <stdio.h>
#include <math.h>
#define TRUE 1
#define FAULSE 0
void main()
{
int i,a[1001],j,n;
int *p=a;
for (i=2; i<1001; i++) /*将数组的各个元素赋值为0*/
*(p+i) = TRUE;
for ( i=2; i<1001; i++)
{
if ( *(p+i)==FAULSE )
continue;
for (n=2; n<=sqrt(i); n++) /*用来判定素数*/
{
if ( i%n==0 )
break;
}
if ( n <= sqrt(i) )
*(p+2) = FAULSE;
for (j=2*n; j<1001; j+=n) /*用来移除那些非素数*/
*(p+j) = FAULSE;
}
for ( i=2; i<1001; i++)
{
if ( *(p+i)==TRUE )
printf("%d ",i);
}
}