莫比乌斯反演
先安利一下隔壁lsj大佬的博客:lsj-莫比乌斯反演-让我们从基础开始
在lsj大佬的博客里有一个比较重要的公式证明:
(d(ij)=displaystylesum_{xmid i}sum_{ymid j}[gcd(x,y)=1])
莫比乌斯函数
[mu(u)=left{egin{split}
&1& ext{若}n=1\
&(-1)^k& ext{若}n ext{无平方因子数,且}n=p_1p_2cdots p_k\
&0& ext{若}n ext{有大于1的平方因数}
end{split}
ight.
]
(mu)函数性质:(displaystylesum _{dmid n} mu(d)=[n=1])
(phi)函数性质:(displaystylesum _{dmid n}phi (d)=n)
显然:
(displaystylesum _{dmid gcd(i,j) } mu(d)=[gcd(i,j)=1])
(displaystylesum _{dmid gcd(i,j)}phi (d)=gcd(i,j))
筛法
莫比乌斯函数可以用线性筛筛出
void init(){
miu[1]=1;
for(int i=2;i<=100000;i++){
if(!is[i]){pri[++tot]=i;miu[i]=-1;}
for(int j=1;j<=tot;j++){
int k=pri[j]*i;if(k>100000)break;
is[k]=1;
if(i%pri[j]==0){miu[k]=0;break;}
else miu[k]=-miu[i];
}
}
}