码迷,mamicode.com
首页 > 其他好文 > 详细

莫比乌斯反演简略版

时间:2018-11-20 23:06:18      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:线性筛   函数   bre   prime   mit   ++   莫比乌斯反演   span   lin   

\(g(x)=\sum\limits_{d|x}f(d) \iff f(x)=\sum\limits_{d|x}\mu(\frac{x}{d})*g(d)\)


\(g(x)=\sum\limits_{x|d}^nf(d) \iff f(x)=\sum\limits_{x|d}^n\mu(\frac{d}{x})*g(d)\)


\(\mu\)为莫比乌斯函数。

定义:\(\sum\limits_{d|x}\mu(d)=[x==1]\)

经分析可得:

\(x=p_1p_2p_3...p_n,\mu(x)=(-1)^n\)

\(x=p^2*d,\mu(x)=0\)

\(x=1,\mu(x)=1\)

线性筛代码如下:

    mu[1]=1;
    for(int i=2;i<=n;i++){
        if(!vis[i])prime[++prime[0]]=i,mu[i]=-1;
        for(int j=1;j<=prime[0]&&1ll*i*prime[j]<=n;j++){
            vis[i*prime[j]]=1;
            if(i%prime[j]==0)break;
            mu[i*prime[j]]=-mu[i];
        }
    }

莫比乌斯反演简略版

标签:线性筛   函数   bre   prime   mit   ++   莫比乌斯反演   span   lin   

原文地址:https://www.cnblogs.com/Emiya-wjk/p/9991877.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!