莫比乌斯反演 与 整除分块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jerry99s/article/details/81867641

首先推荐一篇写的很清楚的博客:
https://www.cnblogs.com/peng-ym/p/8647856.html

下面是自己整理的内容:

一、莫比乌斯反演
这里写图片描述
线性筛_莫比乌斯函数μ:

void get_mu(int n)
{
    mu[1]=1;
    for(int i=2;i<=n;i++)
    {
        if(!vis[i]){prim[++cnt]=i;mu[i]=-1;}  
//筛质数并标记其μ值为-1
        for(int j=1;j<=cnt&&prim[j]*i<=n;j++)
        {
            vis[prim[j]*i]=1;          //标记其非质数
            if(i%prim[j]==0)break;
            else mu[i*prim[j]]=-mu[i];  
//i*prim是由i乘一个质数得到的,所以其μ值乘一个-1
        }
    }
 }

这里写图片描述

二、整除分块
这里写图片描述
这里证明一个结论:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/jerry99s/article/details/81867641