莫比乌斯函数
ll prime[maxn],isprime[maxn];
ll mob[maxn];
ll num;
void getmobius()
{
memset(prime,0,sizeof(prime));
memset(mob,0,sizeof(mob));
memset(isprime,1,sizeof(isprime));
mob[1]=1;
for(int i=2;i<=100000;i++)
{
if(isprime[i])
{
prime[num++]=i;
mob[i]=-1;
}
for(int j=0;j<num&&i*prime[j]<=100000;j++)
{
isprime[i*prime[j]]=0;
if(i%prime[j]==0)
{
mob[i*prime[j]]=0;
break;
}
else mob[i*prime[j]]=-mob[i];
}
}
}
莫比乌斯反演两个公式: