1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| int prime[MAXN],prime_tot; bool isprime[MAXN]; int mu[MAXN]; void pre_calc(int limt) { mu[1]=1; for(int i=2;i<=limt;i++) { if(!isprime[i]){ prime[prime_tot]=i; mu[i]=-1; } for (int j=1;j<prime_tot;j++) { if(i*prime[j]>lim) break; isprime[i*prime[j]]= ture; if(i %prime[j]==0) { mu[i*prime[j]]=0; break; }else{ mu[i*prime[j]]=-mu[i]; } } } }
|