如果有:
F(d)=∑i|df(i)
那么有:
f(d)=∑i|dμ(i)F(di)
另一种形式是如果
F(d)=∑d|if(i)
那么
f(d)=∑d|iμ(id)F(i)
const int maxn=1e6+10;
ll prime[maxn],mob[maxn],vis[maxn],cnt;
void Mobius(){ //mob[1]=1,prime[0]=2;
memset(vis,0,sizeof(vis));
memset(mob,0,sizeof(mob));
memset(prime,0,sizeof(prime));
mob[1] = 1;
cnt = 0;
for(ll i=2; i<maxn; i++){
if(!vis[i]){
prime[cnt++] = i;
mob[i] = -1;
}
for(ll j=0; j<cnt&&i*prime[j]<maxn; j++){
vis[i*prime[j]] = 1;
if(i%prime[j]) mob[i*prime[j]] = -mob[i];
else{
mob[i*prime[j]] = 0;
break;
}
}
}
}