预先处理出素数表,用的时候直接提取。
代码:
void Init()
{
int i,j;
for(i=2;i<=MAX;i++)
{
if(!vis[i]) prime[tail++]=i;//vis[i]=0为合数,vis[i]=1为质数
else continue;
for(j=1;i*j<MAX;j++)//找到一个数的所有倍数,均为合数
vis[i*j]=1;
}
}