常见的数论函数

  • 恒等函数: I(n)=1I(n) = 1

  • 元函数: ϵ(n)=[n=1]\epsilon(n) = [n = 1]

  • 单位函数: id(n)=nid(n) = n

  • 除数函数:输出函数用 σk(n)\sigma_k(n) 表示 nnkk 次方的的和,即 σk(n)=dndk\sigma_k(n) = \sum\limits_{d | n} d^k

    • 约数个数函数,即 σ0(n)\sigma_0(n),通常用 d(n)d(n) 表示: d(n)=dn1d(n) = \sum\limits_{d | n} 1

    • 约数和函数,即 σ1(n)\sigma_1(n),通常用 σ(n)\sigma(n) 表示: σ(n)=dnd\sigma(n) = \sum\limits_{d | n}d

  • 欧拉函数: φ(n)\varphi(n) 表示不大于 nn 且与 nn 互质的正整数个数。(注:φ(1)=1\varphi(1) = 1

  • 莫比乌斯函数:

μ(n)={1n=1(1)sn=p1p2p3ps0otherwise\mu(n)=\left\{ \begin{aligned} & 1 && n = 1 \\ & (-1)^s && n = p_1p_2p_3···p_s \\ & 0 && otherwise \end{aligned} \right.

附线性筛欧拉函数和莫比乌斯函数的代码:

mark
inline void euler(){
    phi[1] = mu[1] = 1;
    for(ll i = 2; i < N; ++i){
        if(!vis[i]) phi[i] = i - 1, mu[i] = -1, p[++tot] = i;
        for(ll j = 1; j <= tot && i * p[j] < N; ++j){
            vis[i * p[j]] = 1;
            if(i % p[j] != 0) phi[i * p[j]] = phi[i] * (p[j] - 1), mu[i * p[j]] = -mu[i];
            else{
                phi[i * p[j]] = phi[i] * p[j], mu[i * p[j]] = 0;
                break;
            }
        }
    }
}

DirichletDirichlet 卷积

ffgg 是数论函数。

h(n)=dnf(d)g(nd)h(n) = \sum\limits_{d | n}f(d)g(\frac nd)

同样也可以写成:

h(n)=dnf(nd)g(d)h(n) = \sum\limits_{d | n}f(\frac nd)g(d)

则称 hhffggDirichletDirichlet 卷积,记为:h=fgh = f * g

一些性质

  • 交换律: fg=gff * g = g * f
  • 结合律: (fg)h=f(gh)(f * g) * h = f * (g * h)
  • 分配律: (f+g)h=fh+gh(f + g) * h = f * h + g * h

一些小结论

  • n=dnφ(d)n = \sum\limits_{d | n}\varphi(d)

  • d(ij)=xiyj[gcd(x,y)=1]d(ij) = \sum\limits_{x | i}\sum\limits_{y | j}[gcd(x, y) = 1]

  • dnμ(d)=[n=1]\sum\limits_{d | n}\mu(d) = [n = 1]

    这条性质也可以用卷积的形式来写: μI=ϵ\mu * I = \epsilon
  • fϵ=ff * \epsilon = f

  • i=1nj=1mgcd(i,j)=k=1n\sum\limits_{i = 1}^{n}\sum\limits_{j = 1}^{m}gcd(i, j) = \sum\limits_{k = 1}^{n}

更新于 阅读次数