莫比乌斯

模板

 1 void solve(){
 2     mu[1]=1;
 3     for(i=2;i<maxn;i++)
 4     {
 5         if(!vis[i])
 6         {
 7             prime[top++]=i;
 8             mu[i]=-1;
 9         }
10         for(j=0;j<top&&prime[j]*i<maxn;j++)
11         {
12             k=prime[j]*i;
13             vis[k]=1;
14             if(i%prime[j])
15             {
16                 mu[k]=-mu[i];
17             }
18             else
19             {
20                 mu[k]=0;
21                 break;
22             }
23         }
24     }
25 }

 

posted @ 2017-08-04 16:31  yZi  阅读(240)  评论(0编辑  收藏  举报