预处理素数:
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 }
时间: 2024-10-12 20:03:14