预处理素数(个人模版)

预处理素数:

 1 void init()  
 2 {  
 3         memset(Is_or,0,sizeof(Is_or));  
 4     for(int j=2;j<sqrt(maxn);j++)//  
 5     {  
 6         if(Is_or[j]==0)//去掉合数的倍数.  
 7         for(int k=j+j;k<=maxn;k+=j)//去掉倍数.(把这么些个合数的倍数都标记上这个数不是素数.)  
 8         Is_or[k]=1;  
 9     }  
10     for(int i=2;i<=maxn;i++)  
11     {  
12         if(Is_or[i]==0)  
13         {  
14             su[cont++]=i;  
15         }  
16     }  
17 }  

 

posted @ 2017-03-16 23:25  Angel_Kitty  阅读(260)  评论(0编辑  收藏  举报