数论函数浅谈
数论函数浅谈
写在前面
- 在没有注明特殊情况下,文中 $p$ 为质数,$p^q$ 为质因数分解。
- 在没有注明特殊情况下,除恒等函数($I$)以外,文中的函数字母大写表示前缀和。同样表示前缀和有在开头的一个大写 $S$。如 $F(n)$ 表示 $\sum\limits_{i=1}^nf(i)$,$S_\varphi(n)$ 表示 $\sum\limits_{i=1}^n\varphi(i)$。
- 笔者水平低,如有写的有问题的欢迎指出。
- 例题部分,在推导式子时有时候会不注明 $n\ge m$,理解即可。
5个需要知道的函数
- $I(n)$
无论 $n$ 是啥,永远是 $1$,叫做恒等函数
- $\epsilon(n)$
当 $n=1$ 时它等于 $1$,否则等于 $0$,叫做元函数
- $id(n)$
永远等于 $n$,叫做单位函数
- $\varphi(n)$
在 $[1,n]$ 中与 $n$ 互质数的个数,叫做欧拉函数
-
$\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)$ 级别的,暴力计算即可。
感觉最近反应真的有点点迟钝了。