预处理素数:
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 }