- 欧拉筛法的基本思想 :在埃氏筛法的基础上,让每个合数只被它的最小质因子筛选一次,以达到不重复的目的。
-
理解:
Code:
1 #include <cstdio> 2 #define maxn 100000 3 int s[maxn],prime[maxn],i,j,cnt; //初始化都是素数 4 void Prime() 5 { 6 for(i = 2; i <= maxn; i++) { 7 if(!s[i]) prime[++cnt] = i;// cnt,记录素数个数 8 for(j = 1; j <= cnt && i*prime[j] <= maxn; j++){ 9 s[i*prime[j]] = 1; 10 if(i % prime[j] == 0) break; 11 } 12 } 13 }