c實現 :
/*
篩選1到n的素數。b[i]代表數字i,b[i]==1代表是素數,b[i]=0;代表不是素數。
t代表素數篩的倍數。
*/
void su_shu_shai(int n)
{
int i=0,t;
b[1]=0;
b[2]=1;
b[3]=1;
for (i=3;i<=n;i++)
{
b[i]=1; //默認是素數
}
for (i=2;i<=n;i++) //t倍數,j表示數字 b[]映射是否爲素數標誌 數字i 對應b[i];
{ if (b[i]==0)
continue; //b[i]=0;代表i 不是素數,b[i]=1 代表i 是素數。
for(t=2;t*i<=n;t++)
{
b[t*i]=0;
}
}
for (i=1;i<=n;i++)
{
printf("%d",i);
printf(" ");
printf("%d",b[i]);
printf("\n");
}
}