素数表

#include<stdio.h>
#include<math.h>
#include<string.h>
int prime[1000010];
int vis[1000010];
int flag;
void init_prime()  
{  
    int i, j;  
    for(i = 2;i <= sqrt(1000010); ++i)  
    {  
        if(!prime[i])  
            for(j = i * i; j <= 1000010; j += i)  
                prime[j] = 1;  
    }  
    j = 0;  
    for(i = 2;i <= 1000010; ++i)  
        if(!prime[i])   
            prime[j++] = i;  
        flag=j;
}  
void vist_prime()
{
    int i;
    memset(vis,0,sizeof(vis));
    for(i=0;i<=flag-1;i++)
    {
        vis[prime[i]]=1;
    }
} 
原文地址:https://www.cnblogs.com/sweat123/p/4667762.html