GCD SUM

GCD SUM

[sum_{i=1}^nsum_{j=1}^ngcd(i,j) ]

将原式变换得到

[sum_{d=1}^ndsum_{i=1}^{lfloorfrac{n}{d} floor}sum_{j=1}^{lfloorfrac{n}{d} floor}[gcd(i,j)=1] ]

别着急莫比乌斯反演,我们知道

[varphi(n)=sum_{i=1}^n[gcd(i,n)=1] ]

所以原式可化为

[sum_{d=1}^ndsum_{i=1}^{lfloorfrac{n}{d} floor}(2*varphi(i)-1) ]

这里减一是因为会算重。对于上式,数论分块一下即可根号求。但实际上(varphi)还是要线性求。所以线性的也行。

然而,若是数据太大的话只能根号那就杜教筛加数论分块吧。

原文地址:https://www.cnblogs.com/BrotherHood/p/13739304.html