#include<stdio.h>
#include<string.h>
bool vis[1000000];
int prime[1000000];
int main()
{
int count=0;
memset(vis,false,sizeof(bool));
for(int i=2;i<1000000;i++)
{
if(!vis[i])
{
prime[count++]=i;
}
for(int j=0;j<=count&&i*prime[j]<1000000;j++)
{
vis[i*prime[j]]=true;
if(i%prime[j]==0) break;
}
}
return 0;
#include<string.h>
bool vis[1000000];
int prime[1000000];
int main()
{
int count=0;
memset(vis,false,sizeof(bool));
for(int i=2;i<1000000;i++)
{
if(!vis[i])
{
prime[count++]=i;
}
for(int j=0;j<=count&&i*prime[j]<1000000;j++)
{
vis[i*prime[j]]=true;
if(i%prime[j]==0) break;
}
}
return 0;
}
所得素数存于Prime数组。