当前位置 博文首页 > LZH的博客:积性函数大全(欧拉函数、莫比乌斯反演、杜教筛……

    LZH的博客:积性函数大全(欧拉函数、莫比乌斯反演、杜教筛……

    作者:[db:作者] 时间:2021-09-21 15:10

    前言

    积性函数是OI中的数论题的重要组成部分 (一般都是涉及到各种因数啊,倍数啊,gcd啊


    前置知识

    整除分块(引理)

    有下面这样一个式子:
    ∑ i = 1 n ? n i ? \sum_{i=1}^n \left \lfloor {n \over i}\right \rfloor i=1n??in??

    求这样一个东西需要多久? O ( n ) O(n) O(n)

    仔细观察,我们会发现 ? n i ? \left \lfloor {n \over i}\right \rfloor ?in?? 会有相同的取值。

    比如: 18 7 = 18 8 = 18 9 = 2 {18\over 7}={18\over 8}={18\over 9}=2 718?=818?=918?=2

    有这样一个结论 ? n i ? \left \lfloor {n \over i}\right \rfloor ?in?? 最多有 2 n 2\sqrt n 2n ? 种取值

    所以可以 O ( n ) O(\sqrt n) O(n ?) 算出答案。


    莫比乌斯函数

    定义

    莫比乌斯函数,像这样 μ ( n ) \mu(n) μ(n)
    { μ ( n ) = 0 ( n 为 一 个 质 数 平 方 的 倍 数 ) μ ( n ) = ( ? 1 ) k ( n 的 质 因 数 的 个 数 为 k ) \left\{ \begin{array}{lr} \mu(n)=0 &(n为一个质数平方的倍数)\\ \mu(n)=(-1)^k &(n的质因数的个数为 k)\\ \end{array} \right. {μ(n)=0μ(n)=(?1)k?(n)(nk)?

    例如
    μ ( 1 ) = 1 = ( ? 1 ) 0 μ ( 30 ) = ? 1 = ( ? 1 ) 3 ( 30 = 2 × 3 × 5 ) μ ( 6 ) = 1 = ( ? 1 ) 2 ( 6 = 2 × 3 ) μ ( 12 ) = 0 ( 12 = 2 2 × 3 ) \left. \begin{array}{lr} \mu(1)=1=(-1)^0\\ \mu(30)=-1=(-1)^3 &(30=2\times 3\times 5)\\ \mu(6)=1=(-1)^2 &(6=2\times 3)\\ \mu(12)=0 &(12=2^2\times 3) \end{array} \right. μ(1)=1=(?1)0μ(30)=?1=(?1)3μ(6)=1=(?1)2μ(12)=0?