一道题

求:$\sum_{i=1}^{n}\sum_{d|i}(d,\frac{i}{d})$.

重要套路:$(a,b)=d,ab\leqslant n$ 求这个(a,b)的个数,又要保证后面的限制,可以这样缩:符合要求的$(a,b)$一定有$x,y$使得$(x,y)=1,xd*yd<=n$,因此$xy<=\frac{n}{d^2}$。

$\sum_{i=1}^{n}\sum_{d|i}(d,\frac{i}{d})$

$=\sum_{d}d\sum _{a}\sum _{b}((a,b)=d),ab<=n$

$=\sum_{d}d\sum_{x}\sum_{y}I ((x,y)),xy<=\frac{n}{d^2}$

$=\sum_{d}d \sum_{i=1}^{\frac{n}{d^2}}\sum_{d'|i}I ((d',\frac{i}{d'}))$

$=\sum_{d}d \sum_{i=1}^{\frac{n}{d^2}}\sum_{d'|i}\sum_{t|d'\wedge t|\frac{i}{d'}}\mu(t)$

$=\sum_{d}d\sum_{t}\mu(t)\sum_{a}\sum_{b}(a*b\leq \frac{n}{d^2},t|a,t|b)$

$=\sum_{d}d\sum_{t}\mu(t)\sum_{i=1}^{\frac{n}{d^2t^2}}d(i)$

闪一句,$d(i)$表示$i$的因数个数。

$=\sum_{w=1}^{n}\varphi (w)\sum_{i=1}^{\frac{n}{w^2}}d(i)$

前面那部分phi只用枚举到根号即可。而后面的d(i)有

$\sum_{i=1}^{n}d(i)=\sum_{i=1}^{n}\left \lfloor \frac{n}{i} \right \rfloor$

闪一句,这里考虑每个数作为几个数的因数即可。

然后就可以根号套根号,复杂度大概是$\sqrt{n}lnn$。

 

posted @ 2018-01-18 13:07  Blue233333  阅读(181)  评论(0编辑  收藏  举报