真 TM 毒瘤……
典型的式子好推不可实现题……
一个显然的想法是先枚举 r=⌊3√i⌋,然后再考虑 i 的贡献。
即 ⌊3√i⌋∑i=1gcd(⌊3√i⌋,i)=⌊3√i⌋∑r=1n∑i=1[⌊3√i⌋=r]gcd(r,i)。
又因为 ⌊3√i⌋=r 等价于 r3≤i<(r+1)3,相当于把这些数分成了 ⌊3√i⌋ 块。
得 ⌊3√i⌋∑i=1gcd(⌊3√i⌋,i)=n∑i=⌊3√n⌋3gcd(⌊3√i⌋,i)+⌊3√i⌋−1∑r=1(r+1)3−1∑i=r3gcd(r,i)。
根据基本反演套路易得 n∑i=1gcd(r,i)=∑d|r⌊nd⌋φ(d)。
于是两个和式分别算即可。
第一个和式需要 ⌊3√n⌋ 的约数的欧拉函数值,可以考虑类似杜教筛的思想,预处理 n2/9 之内的值,然后别的值分解质因数硬算(只需要 n1/6 以下的质数)。
复杂度比较难算,姑且认为是 O(n2/9)(实际上跑不满)。
(实际上可以通过 DFS 做到 O(n1/6),因为都是 ⌊3√n⌋ 的约数,但是我懒得写)
第二个和式,根据上式得 ⌊3√i⌋−1∑r=1(r+1)3−1∑i=r3gcd(r,i)=⌊3√i⌋−1∑r=1∑d|r(⌊(r+1)3−1d⌋−⌊r3−1d⌋)φ(d)=⌊3√i⌋−1∑d=1φ(d)⌊⌊3√i⌋−1d⌋∑r=1(⌊(dr+1)3−1d⌋−⌊(dr)3−1d⌋)
注意到 ⌊(dr+1)3−1d⌋=⌊d3r3+3d2r2+3drd⌋=d2r3+3dr2+3r,且 ⌊(dr)3−1d⌋=⌊d3r3−1d⌋=d2r3−1。
故 ⌊3√i⌋−1∑d=1φ(d)⌊⌊3√i⌋−1d⌋∑r=1(⌊(dr+1)3−1d⌋−⌊(dr)3−1d⌋)=⌊3√i⌋−1∑d=1φ(d)⌊⌊3√i⌋−1d⌋∑r=1(3dr2+3r+1)
然后稍微杜教筛一下就行了。
代码:
1 |
|