Loading

数论函数浅谈

数论函数浅谈

写在前面

  1. 在没有注明特殊情况下,文中 $p$ 为质数,$p^q$ 为质因数分解。
  2. 在没有注明特殊情况下,除恒等函数($I$)以外,文中的函数字母大写表示前缀和。同样表示前缀和有在开头的一个大写 $S$。如 $F(n)$ 表示 $\sum\limits_{i=1}^nf(i)$,$S_\varphi(n)$ 表示 $\sum\limits_{i=1}^n\varphi(i)$。
  3. 笔者水平低,如有写的有问题的欢迎指出。
  4. 例题部分,在推导式子时有时候会不注明 $n\ge m$,理解即可。

5个需要知道的函数

  1. $I(n)$

无论 $n$ 是啥,永远是 $1$,叫做恒等函数

  1. $\epsilon(n)$

当 $n=1$ 时它等于 $1$,否则等于 $0$,叫做元函数

  1. $id(n)$

永远等于 $n$,叫做单位函数

  1. $\varphi(n)$

在 $[1,n]$ 中与 $n$ 互质数的个数,叫做欧拉函数

  1. $\mu(n)$

    $$ {\mu(n)}=\left \{ \begin{aligned} 1,n=1\\ (-1)^s,n=p_1p_2...p_s\\ 0,otherwise \end{aligned} \right. $$

其中,$p_1$ 到 $p_n$ 是不同素数

这个函数叫做叫做莫比乌斯函数,后面进一步讨论

卷积

定义

离散卷积是两个离散序列和之间按照一定的规则,将它们的有关序列值分别两两相乘再相加的一种特殊的运算$$ y(n)=\sum^{\infty}_{i=-\infty}{x(i)·h(n-i)} $$

理解这个格式就好

狄利克雷卷积

定义

设 $f,g$ 是数论函数,若数论函数 $h$ 满足

$$ h(n)=\sum_{d|n}{f(d)g(\frac{n}{d})} $$

则称 $h$ 为 $f$ 和 $g$ 的狄利克雷卷积,记作$h=f*g$

狄利克雷卷积满足交换律和结合律

积性函数

积性函数

对于一个函数 $f$,若 $a,b$ 互质的时候,有$$ f(ab)=f(a)(b) $$ 其中五个需要知道的函数中 $4、5$ 是积性函数

完全积性函数

对于任何整数 $a,b$ 有上面那个公式

其中五个需要知道的函数中 $1,2,3$ 是完全积性函数

重要性质!

两个积性函数的卷积必然是积性函数

莫比乌斯函数

定义

回顾一下之前莫比乌斯函数的定义

$$ {\mu(n)}=\left \{ \begin{aligned} 1,n=1\\ (-1)^s,n=p_1p_2...p_s\\ 0,otherwise \end{aligned} \right. $$

这个定义看起来有点莫名其妙,但是实际上莫比乌斯函数来源应该是这样的:

考虑 $g(n)=\sum\limits_{d|n}f(d)$,写成卷积形式为 $g=I*f$,此时如果两边同时乘一个 $I^{-1}$ 会发生这样的事情:$g*I^{-1}=f$。对于这个 $I^{-1}$ 大佬们就将其定义为 $\mu$,之后也便对倒出来了 $\mu$ 的定义。这个有什么用在看到例题的时候可以具体说。

一个性质

莫比乌斯函数具有以下重要的性质:

$$ \sum_{d|n}{\mu(d)}=\epsilon(n) $$

即 $\mu*I=\epsilon$

简证:不妨设 $n=p_1^{q_1}p_2^{q_2}...p_s^{q_s}$,其中所有指数 $q$ 显然没有意义(根据 $\mu$ 的定义,如果存在一个平方数能够整除 $x$ 那么 $\mu (x)=0$,也就是说,我们就是在 $s$ 个质数当中选几个凑出来一个因数,因此也就写成了第一个等号后面的东西。之后用二项式定理 $(a+b)^{n}=\sum\limits_{i=0}^{n}C_{n}^{i}a^ib^{n-i}$ 套进去即可。

$$ \sum_{d|n}{\mu(d)}=\sum^{s}_{k=0}{(-1)^kC_s^k=(1-1)^s=0} $$

在后面推柿子的时候会用到。

其实对于所有积性函数,有 $f*f^{-1}=\epsilon$。

莫比乌斯反演

约数反演

若$$ g(n)=\sum_{d|n}f(d) $$ 则$$ f(n)=\sum_{d|n}\mu(d)g(\frac{n}{d}) $$

证明

$$ g(n)=\sum_{d|n}f(d) $$ 运用狄雷克利卷积将函数写成 $f*I$ 的形式$$ g=f*I $$ 两边同时卷积 $\mu$

$$ g*\mu=f*I*\mu $$ 根据莫比乌斯函数的性质和元函数的性质整理$$ f*I*\mu=f*(I*\mu)=f*\epsilon=f $$

倍数反演

这个用的不多,但是最近刚刚碰到过,形式是这样的

$$ g(n)=\sum_{n|d}f(d) \Leftrightarrow f(n)=\sum_{n|d}\mu(\dfrac{d}{n})g(n) $$

好像讲到这里就是反演需要知道的所有基础的知识了,反演很多题目都是通过这些基础的东西来进行推导的。


杜教筛

同样是和积性函数有关的一个知识点,一起讲一下。

我们要求 $f(x)$ 的前缀和,即 $\sum\limits_{i=1}^{n}f(i)$,下面记作 $F(n)$。

假如我们知道有 $f*g=h$,我们尝试求一下 $H(n)$

$$ \begin{aligned} H(i) & = \sum_{i = 1}^nh(i)\\ & = \sum_{i = 1}^{n}\sum_{d|i}f(d)g(\frac{i}{d})\\ & = \sum_{i = 1}^{n}\sum_{j = 1}^{\left \lfloor \frac{n}{i} \right \rfloor }f(j)g(i)\\ & = \sum_{i = 1}^{n}g(i)\sum_{j = 1}^{\left \lfloor \frac{n}{i} \right \rfloor }f(j)\\ & = \sum_{i = 1}^{n}g(i)F(\left \lfloor \frac{n}{i} \right \rfloor)\\ & = g(1)F(n)+\sum_{i = 2}^{n}g(i)F(\left \lfloor \frac{n}{i} \right \rfloor) \end{aligned} $$

这样就有以下式子:

$$ F(n)=\frac{H(n)-\sum\limits_{i = 2}^{n}g(i)F(\left \lfloor \frac{n}{i} \right \rfloor)}{g(1)} $$

因为是积性函数,因此有 $g(1)=1$,所以最终为

$$ F(n)=H(n)-\sum\limits_{i = 2}^{n}g(i)F(\left \lfloor \frac{n}{i} \right \rfloor) $$

如果能够构造出来前缀和比较好算的 $g,h$,我们就可以快速计算出来 $F(n)$。

如对于 $\varphi$,有 $\varphi * I = id$,因此

$$ S_\varphi(i)=\dfrac{n(n+1)}{2}-\sum\limits_{i = 2}^{n}S_\varphi(\left \lfloor \frac{n}{i} \right \rfloor) $$

如对于 $\mu$,有 $\mu * I=\epsilon$,则

$$ S_\mu(i)=1-\sum\limits_{i = 2}^{n}S_\mu(\left \lfloor \frac{n}{i} \right \rfloor) $$


Powerful Number 筛

以下简称 PN 筛。PN 筛也是用来求一些积性函数的前缀和,更像是杜教筛的一个扩展。

Powerful Number

对于一个数,可以被写成 $\prod\limits_{i=1}^{s}p_i^{q_i}$ 的形式。如果这个数满足 $\forall q_i,q_i>1$ 则称之为 Powerful Number。

可以证明 $n$ 以内的 PN 数量是 $\mathcal{O}(\sqrt n)$ 的。

现在要求的是 $\sum\limits_{i=1}^{n}f(i)$,假设我们有一个好求前缀和的函数 $g$ 满足对于所有的质数,有 $f(p)=g(p)$。我们再构造出来 $f=g*h$。

对于一个质数,我们有 $f(p)=g(1)h(p)+g(p)h(1)=h(p)+g(p)$ 因为我们设了 $f(p)=g(p)$,因此有 $h(p)=0$。又因为 $h$ 是积性函数,根据积性函数的性质我们有 $h$ 只有在 PN 处是有值的。

接着开始一段常见的计算。

$$ \begin{aligned} F(n) &= \sum_{i=1}^nf(i)\\ &=\sum_{i=1}^n\sum_{d|i}h(i)g(\frac{i}{d})\\ &=\sum_{i=1}^n\sum_{j=1}^{\left \lfloor \frac{n}{i} \right \rfloor }h(i)g(j)\\ &=\sum_{i=1}^nh(i)G(\left \lfloor \frac{n}{i} \right \rfloor)\\ &=\sum_{i=1,i\in NP}^nh(i)G(\left \lfloor \frac{n}{i} \right \rfloor) \end{aligned} $$

因为 PN 是 $\mathcal{O}(\sqrt n)$ 的,因此可以直接暴力枚举,后面的可以通过杜教筛等求出来 $G$ 的前缀和。

例题杂记

简单整理一些做莫反题的笔记。

P3455

给定 $n,m,k$ 求

$$ \sum_{i=1}^{n}\sum_{j=1}^{m}[\gcd (i,j) = k] $$

设 $n\ge m$

$$ \begin{aligned} \sum_{i=1}^{n}\sum_{j=1}^{m}[\gcd (i,j) = k] &= \sum_{i=1}^{\left \lfloor \frac{n}{k} \right \rfloor }\sum_{j=1}^{\left \lfloor \frac{m}{k} \right \rfloor }\epsilon(\gcd(i,j))\\ &=\sum_{i=1}^{\left \lfloor \frac{n}{k} \right \rfloor }\sum_{j=1}^{\left \lfloor \frac{m}{k} \right \rfloor }\sum_{d|i,d|j}\mu(d)\\ &=\sum_{d=1}^{\left \lfloor \frac{m}{k} \right \rfloor}\mu(d)\sum_{d|i}^{\left \lfloor \frac{n}{k} \right \rfloor}\sum_{d|j}^{\left \lfloor \frac{m}{k} \right \rfloor}1\\ &=\sum_{d=1}^{\left \lfloor \frac{m}{k} \right \rfloor}\mu(d)\left \lfloor \frac{\left \lfloor \frac{n}{k} \right \rfloor}{d} \right \rfloor \left \lfloor \frac{\left \lfloor \frac{m}{k} \right \rfloor}{d} \right \rfloor \end{aligned} $$

整除分块即可,基础模版轻松通过。

P2257

给定 $n,m$ 求

$$ \sum_{i=1}^{n}\sum_{j=1}^{m}[\gcd (i,j) = p] $$

先化成上面的形式

$$ \begin{aligned} \sum_{p}^{m}\sum_{d=1}^{\left \lfloor \frac{m}{p} \right \rfloor}\mu(d)\left \lfloor \frac{n}{dp} \right \rfloor \left \lfloor \frac{m}{dp} \right \rfloor \end{aligned} $$

但是这样是通过不了的,枚举质数是不现实的。

能不能处理一下 $dp$? 设 $dp=t$,枚举 $dp$ 试试

$$ \begin{aligned} \sum_{t=1}^{m}\sum_{p|t}\mu({\frac{t}{p}})\left \lfloor \frac{n}{t} \right \rfloor \left \lfloor \frac{m}{t} \right \rfloor &= \sum_{t=1}^{m}\left \lfloor \frac{n}{t} \right \rfloor \left \lfloor \frac{m}{t} \right \rfloor \sum_{p|t}\mu({\frac{t}{p}}) \end{aligned} $$

仔细观察后面的一段,在预处理的时候,我们是不是可以直接预处理出来对于所有 $t$ 其取值,前面的整除分块一下,这样复杂度就为 $\mathcal{O}(T\sqrt{m}+n\log^2n)$ 可以通过。

P2522

给定 $a,b,c,d,k$ 求

$$ \sum_{i=a}^{b}\sum_{j=c}^{d}[\gcd (i,j) = k] $$

知道差分就不用说啥了,为了简便,设 $f(a,b,c,d)$ 为上面那个柿子

$$ \begin{aligned} f(a,b,c,d)=f(1,b,1,d)-f(1,a-1,1,d)-f(1,b,1,c-1)+f(1,a-1,1,c-1) \end{aligned} $$

对于 $f(1,n,1,m)$ 和第一题是一样的。

P3312

给定 $n,m,a$ 求:

$$ \sum_{i=1}^{n}\sum_{j=1}^m(\sigma_1(\gcd(i,j))[(\sigma_1(\gcd(i,j))\le a]) $$

$a$ 的限制比较碍事,先考虑求

$$ \sum_{i=1}^{n}\sum_{j=1}^m\sigma_1(\gcd(i,j)) $$

考虑暴力枚举其值,有

$$ \sum_{d=1}^n\sigma_1(d)\sum_{i=1}^{n}\sum_{j=1}^m[\gcd(i,j)=d] $$

整理得

$$ \sum_{d=1}^n\sigma_1(d)\sum_{x=1}^{\left \lfloor \frac{n}{d} \right \rfloor}\mu(x)\left \lfloor \frac{n}{dx} \right \rfloor \left \lfloor \frac{m}{dx} \right \rfloor $$

设 $t=dx$

$$ \sum_{t=1}^{n}\left \lfloor \frac{n}{t} \right \rfloor \left \lfloor \frac{m}{t} \right \rfloor \sum_{d|t}\sigma_1(d)\mu(\dfrac{t}{d})=\sum_{t=1}^{n}\left \lfloor \frac{n}{t} \right \rfloor \left \lfloor \frac{m}{t} \right \rfloor id(t) $$

但是还有个限制,如果直接变成了 $id(t)$ 那么无法判断大小了,往回一步考虑性质。

$$ \sum_{t=1}^{n}\left \lfloor \frac{n}{t} \right \rfloor \left \lfloor \frac{m}{t} \right \rfloor \sum_{d|t}\sigma_1(d)\mu(\dfrac{t}{d}) $$

回到这个柿子当中,考虑到 $\sigma_1(d)\le a$ 的时候才能够对于答案产生贡献,现在把这个东西离线一下,对于 $a$ 排序。这样可以通过枚举倍数的方法更新整个柿子的值,枚举倍数的复杂度是 $n \ln n$ 的,观察到这个柿子后面的东西是一个前缀和,也就是说我们要维护单点修改 + 求前缀和,可以直接用数状数组维护。

推柿子比较套路化,最后一步离线维护比较新。

P1829

给定 $n,m$

$$ \sum_{i=1}^{n}\sum_{j=1}^m \text{lcm}(i,j) $$

化成 $\gcd$ 的形式,有

$$ \sum_{i=1}^{n}\sum_{j=1}^m \dfrac{ij}{\gcd(i,j)} $$

直接暴力枚举 $\gcd$

$$ \begin{aligned} \sum_{k=1}^n \dfrac{1}{k} \sum_{i=1}^n\sum_{j=1}^mij[\gcd(i,j)=k]&=\sum_{k=1}^n \dfrac{1}{k}\sum_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{k} \rfloor}ijk^2\epsilon(\gcd(i,j))\\ &=\sum_{k=1}^n k\sum_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{k} \rfloor}ij\epsilon(\gcd(i,j)) \end{aligned} $$

考虑式子后面的东西,设 $s(n,m)=\sum\limits_{i=1}^n\sum\limits_{j=1}^mij\epsilon(\gcd(i,j))$

同样,由 $\mu * I =\epsilon$,有

$$ \begin{aligned} s(n,m)&=\sum\limits_{i=1}^n\sum\limits_{j=1}^mij\sum_{d|i,d|j}\mu(d)\\ &=\sum_{d=1}^n\sum_{d|i}\sum_{d|j}ij\mu(d)\\ &=\sum_{d=1}^n\mu(d)d^2\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}i\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}j \end{aligned} $$

不妨设 $f(n,m)=\sum\limits_{i=1}^{n}i\sum\limits_{j=1}^mj$,小学就学过,这东西应该等于 $\dfrac{n(n+1)}{2}\times \dfrac{m(m+1)}{2}$

此时有

$$ s(n,m)=\sum_{d=1}^n\mu(d)d^2f(\lfloor\dfrac{n}{d}\rfloor,\lfloor\dfrac{m}{d}\rfloor) $$ 这部分整除分块即可。

又考虑到原式,为

$$\sum_{k=1}^n k\times s(\lfloor\dfrac{n}{d}\rfloor,\lfloor\dfrac{m}{d}\rfloor)$$

同样整除分块,复杂度 $\mathcal{O}(n)$

代码实现反而没多难。

P3768

给定 $n$ 求

$$ \sum_{i=1}^{n}\sum_{j=1}^nij\gcd(i,j) $$$$ n\le 10^{10} $$

和上一题很相似,试试看

$$ \begin{aligned} \sum_{i=1}^{n}\sum_{j=1}^nij\gcd(i,j)&= \sum_{k=1}^{n}k\sum_{i=1}^n\sum_{j=1}^nij[\gcd(i,j)=k]\\ &=\sum_{k=1}^nk^3\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{k}\rfloor}ij\epsilon(\gcd(i,j))\\ \end{aligned} $$

现在和上面一样,但是这题不能够直接 $\mathcal{O}(n)$ 还得进一步化简。

还是反演拆开

$$ \begin{aligned} &=\sum_{k=1}^nk^3\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{k}\rfloor}ij\sum_{d|i,d|j}\mu(d)\\ &=\sum_{k=1}^nk^3\sum_{d=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{d|i}^{\lfloor\frac{n}{k}\rfloor}\sum_{d|j}^{\lfloor\frac{n}{k}\rfloor}ij\mu(d)\\ &=\sum_{k=1}^nk^3\sum_{d=1}^{\lfloor\frac{n}{k}\rfloor}d^2\mu(d)\sum_{i=1}^{\lfloor\frac{n}{kd}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{kd}\rfloor}ij \end{aligned} $$

注意到最后面其实和上面是类似的,但这时候是没有两个变量的,因此可以设 $f(x)=\dfrac{x^2(x+1)^2}{4},T=kd$

原式为

$$ \sum_{k=1}^nk^3\sum_{d=1}^{\lfloor\frac{n}{k}\rfloor}d^2\mu(d)f(\lfloor\frac{n}{T}\rfloor) $$

个人觉得自己只能推到这里了,但是这里还是有操作空间的,我们来一个乾坤大挪移,并且改为枚举 $T$。

$$ \sum_{T=1}^n f(\lfloor\frac{n}{T}\rfloor) T^2\sum_{k|T}k\mu(\frac{T}{k}) $$

这东西不看不知道,一看吓一跳,后面这个东西是啥,不就是 $\mu * id$ 嘛。

两个小的插曲

$\varphi * I=id$

$\mu * id =\varphi$

考虑第一个的证明,展开来有

$$ \sum_{d|n}\varphi(d) $$

考虑意义,这里其实和我们很多时候拆 $\gcd$ 的样子很像。考虑到 $\varphi(x)$ 为满足 $\gcd(x,y)=1$ 的 $y$ 的个数。那么如果 $\gcd(x,y)=d$ 也就是说这时候应该有 $\gcd(\frac{x}{d},\frac{y}{d})=1$ 也就是 $\varphi(\frac{x}{d})$。那么看到原式,就可以把起理解为和 $n$ 的最大公因数分别为 $n$ 的所有因子数数的数量,这显然是 $n$。

再进行一些简单的卷积推导 $\varphi * I = id \Rightarrow \varphi * I * \mu = id * \mu \Rightarrow \mu * id =\varphi$

回归正题

此时式子就变成了

$$ \sum_{T=1}^n f(\lfloor\frac{n}{T}\rfloor) T^2\varphi(T) $$

但是似乎又停下来了。

现在面对一个问题,就是 这中间多了一个 $T^2$,如果没有这个可以容易通过杜教筛求出来这个式子的值,$\mathcal{O}(n^{\frac{2}{3}})$。

等等,杜教筛?后面这个东西不也是一个积性函数吗?套用一下杜教筛的思路。

设 $g(x)=x^2\varphi(x)$,要求 $G(x)$。

研究一下 $g*h$。

$$ (g*h)(x)=\sum_{d|x}g(d)h(\dfrac{x}{d})=\sum_{d|x}d^2\varphi(d)h(\dfrac{x}{d}) $$

不妨设 $h(x)=x^2$,这样带回就有了 $(g*h)(x)=x^2id(x)=x^3$

好极了,现在对于 $h,h*g$ 这两个东西的积性函数都是好球前缀和的,套一下杜教筛的公式:

$$ G(x)=(g*h)(n)-\sum\limits_{i = 2}^{n}h(i)G(\left \lfloor \frac{n}{i} \right \rfloor) $$

再用一点小学的知识,把它写成正确的形式。

$$ G(x)=\dfrac{x^2(x+1)^2}{4}-\sum\limits_{i = 2}^{n}h(i)G(\left \lfloor \frac{n}{i} \right \rfloor) $$

后面的东西整除分块 + 平方和即可。

有了 $g(x)$ 那么带会到原式,就可以得到答案了。

非常爽的推式子题,同时运用了杜教筛的思想。

AGC038C

给定 $n$ 和长度为 $n$ 的数列,求

$$ \sum_{i=1}^n\sum_{j=i+1}^{n}\text{lcm}(a_i,a_j) $$

先考虑计算 $\sum_{i=1}^n\sum_{j=1}^{n}\text{lcm}(a_i,a_j)$

尝试直接展开,设 $m=\max\limits_{i-1}^na_i$

$$ \begin{aligned} \sum_{i=1}^n\sum_{j=1}^{n}\text{lcm}(a_i,a_j) &= \sum_{i=1}^n\sum_{j=1}^{n}\dfrac{a_ia_j}{\gcd(a_i,a_j)} \\ &= \sum_{k=1}^{m}\dfrac{1}{k}\sum_{i=1}^n\sum_{j=1}^{n}a_ia_j[\gcd(a_i,a_j)=k] \end{aligned} $$

注意这里是后面枚举的是 $a_i,a_j$,因此反演之后应该是这样子的

$$ \sum_{k=1}^m\dfrac{1}{k}\sum_{i=1}^n\sum_{j=1}^na_ia_j[k|a_i][k|a_j]\sum_{d|\frac{a_i}{k},d|\frac{a_j}{k}}\mu(d) $$

考虑枚举 $d$,前面枚举的时候只需要枚举到 $\lfloor \dfrac{m}{k}\rfloor$ 因为后面的限制,之后后面要保证 $d|\dfrac{a_i}{k}$,因为枚举的时候已经满足了 $d\le\dfrac{a_i}{k}$ 因此其实只需要满足 $d|a_i$ 即可。整理一下写出来就是

$$ \sum_{k=1}^m\sum_{d=1}^{\lfloor \frac{m}{k}\rfloor}\dfrac{\mu(d)}{k}\sum_{i=1}^n\sum_{j=1}^na_ia_j[k|a_i][k|a_j][d|a_i][d|a_j] $$

后面两个还可以合并,即

$$ \sum_{k=1}^m\sum_{d=1}^{\lfloor \frac{m}{k}\rfloor}\dfrac{\mu(d)}{k}\sum_{i=1}^n\sum_{j=1}^na_ia_j[dk|a_i][dk|a_j] $$

目前看起来,前面的一堆东西是可以比较快速地处理的,后面的形式感觉是有前途的。分离一下 $i,j$

$$ \sum_{k=1}^m\sum_{d=1}^{\lfloor \frac{m}{k}\rfloor}\dfrac{\mu(d)}{k}\sum_{i=1}^na_i[dk|a_i]\sum_{j=1}^na_j[dk|a_j] $$

会发现后面的两个东西是完全等价的,因此可以变成

$$ \sum_{k=1}^m\sum_{d=1}^{\lfloor \frac{m}{k}\rfloor}\dfrac{\mu(d)}{k}(\sum_{i=1}^na_i[dk|a_i])^2 $$

最后就是考虑后面这个东西怎么计算了,仔细观察前面的枚举过程,其实所有的 $dk$ 相当于枚举所有在 $m$ 范围内的 $k$ 的倍数,也就是说对于每个 $k$ 都只有满足是 $k$ 倍数的 $a_i$ 才会有贡献,这个东西显然可以预处理,因为有

$$ \sum_{i=1}^n\dfrac{n}{i}\approx n \ln n $$

之后对于这个东西算出来的答案减去 $\sum a_i$ 再除以 $2$ 即可。

???

$$ \begin{aligned} f(1)=1\\ f(p^c)=f(p+c)^c\\ f(x)=\prod_i f(p_i^{c_i}) \end{aligned} $$

显然 $f$ 是积性函数,求其前缀和 $n\le 10^{13}$

观察到 $f(p)=p+1$ 不难想到用 PN 去处理这个问题。

回忆 PN 的过程,首先需要构造出 $g(p)=f(p)$ 那么什么函数满足 $?(p)=p+1$ 呢。经过一些玄学,可以找到 $\sigma (p)=p+1$

进行 PN 的套路。设 $f=g*h$ 有 $h(x)=(f*\sigma ^ {-1})(x)$。则:

$$ \begin{aligned} F(n)&=\sum_{i=1}^{n}\sum_{d|i}h(d)\sigma(\dfrac{i}{d})\\ &=\sum_{d=1,d\in PN}^{n}h(d)S_\sigma(\lfloor \dfrac{n}{d} \rfloor) \end{aligned} $$

由于 $id*I=\sigma$ 后面的东西可以整除分块,前面暴力枚举 $PN$ 即可。最后考虑 $h(p^c)$ 怎么计算。根据定义

$$ h * \sigma = f $$$$ \sum_{i=0}^c \sigma(p^i)h(p^{c-i})=f(p^c) \Rightarrow 1\times h(p^c)=f(p^c)-\sum_{i=1}^c\sigma(p^i)h(p^{c-i}) $$

因为 $c$ 是 $\mathcal{O}(\log_p n)$ 级别的,暴力计算即可。

感觉最近反应真的有点点迟钝了。

posted @ 2022-05-09 07:02  Jryno1  阅读(28)  评论(0)    收藏  举报  来源