莫比乌斯反演

莫比乌斯函数 

 

void get_mu(int n)
{
    mu[1]=1;
    for(int i=2;i<=n;i++)
    {
        if(!vis[i]){prim[++cnt]=i;mu[i]=-1;}
        for(int j=1;j<=cnt&&prim[j]*i<=n;j++)
        {
            vis[prim[j]*i]=1;
            if(i%prim[j]==0)break;
            else mu[i*prim[j]]=-mu[i];
        }
    }
 }
View Code

 

莫比乌斯反演


 参考

posted on 2018-10-01 17:29  solvit  阅读(98)  评论(0编辑  收藏  举报

导航