莫比乌斯反演
莫比乌斯反演(mobius)的形式
其中mu
的定义如下
性质:
1.
2.
代码求mu
:
int normal[maxn];
int mu[maxn];
int prime[maxn];
int pcnt;
void Init()
{
memset(normal,0,sizeof(normal));
mu[1] = 1;
pcnt = 0;
for(int i=2; i<maxn; i++)
{
if(!normal[i])
{
prime[pcnt++] = i;
mu[i] = -1;
}
for(int j=0; j<pcnt&&i*prime[j]<maxn; j++)
{
normal[i*prime[j]] = 1;
if(i%prime[j]) mu[i*prime[j]] = -mu[i];
else
{
mu[i*prime[j]] = 0;
break;
}
}
}
}