转载:欧拉筛筛素数
int prime[500];//存素数
bool vis[500];//false时可以存放
int cet;
for(int i=2;i<=n;i++)
{
if(!vis[i])
{
prime[cet++]=i;
}
for(int j=0;j<cet&&i*prime[j]<=n;j++)
{
vis[i*prime[j]]=true;
if(i%prime[j]==0)
break;
}
}