这个 gcd 在分母上面很讨厌,考虑以它为贡献体贡献(由于 gcd 的一个元 (n) 是常数,所以可以确定 gcd 整除 (n),这样会有很多方便)。
按 P2522 的套路把 gcd 要等于的值弄成 (1)(由于 (jmid n),所以 (sum) 的上界不需要取整)。
噫,好,这 (dfrac 1j) 直接约掉了,然后再根据对称性化简一下。
第二个 (sum) 看起来跟 (varphi) 有关系。考虑从意义上来想,对 (j>1),互质的数是成对出现的,若 (i) 互质,(j-i) 也互质,一对的和为 (j)。(dfrac j2) 也不用担心,算作半对来考虑,那么这个和式就等于 (dfrac{varphi(j)j}2)。 对 (j=1) 由于自己和自己互质了,单独考虑开来答案为 (1)。
但是我们用推柿子把它推出来。考虑把 ([?=1]) 用 (mu*1) 展开。
交换 (sum)(老套路),然后一个 (k) 的贡献系数就是 (1sim j) 中 (k) 的倍数和,容易算出 (dfrac{leftlfloordfrac jk ight floorleft(1+leftlfloordfrac jk ight floor ight)}2k)。但是有 (kmid j),所以取整直接拿掉, (dfrac{dfrac jkleft(1+dfrac jk ight)}2k=dfrac{jleft(1+dfrac jk ight)}2)。
把 (dfrac j2) 看成常系数,括号拆开,那么第二个 (sum) 其实就是个 ((mu*1+mu*mathrm{id})(j))。恰巧这两个狄卷都是可以算的,等于 (epsilon+varphi)。那么
到这一步直接算是枚举因数,根号的复杂度。不过可以预处理的话是线对的调和级数复杂度,或者可以看成 (f(x)=dfrac x2(epsilon(x)+varphi(x))) 时的 ((f*1)(n)),狄卷暴力算就是线对的。那直接算就可以了。
upd:乘法分配律拆进去,((f*1)=dfrac{(mathrm{id} imesepsilon)*1+(mathrm{id imesvarphi})*1}2)。两个都是积性函数卷积性函数,依然是积性函数,线性筛就行了。