网上找到的暂时都是 O(n23)O(n^\frac{2}{3})O(n32) 的做法。如果有更优的做法欢迎留言。
经过一通乱算,我们发现:
∑σ0(i2)=∑μ(i)∗f(n/i2)\sum{\sigma_0(i^2)} = \sum \mu(i) * f(n/i^2)∑σ0(i2)=∑μ(i)∗f(n/i2)
其中 f(n)f(n)f(n) 是 a∗b∗c<=na * b * c <= na∗b∗c<=n 的 (a,b,c)(a,b,c)(a,b,c) 组数
使用 zzt 讲稿中论文的做法可以做到 O(n59)O(n^\frac{5}{9})O(n95)(可能是 O(n59logn)O(n^\frac{5}{9}logn)O(n95logn)?)
然而这货跑得没有暴力快。
如果这题有优于 O(n59logn)O(n^\frac{5}{9}logn)O(n95logn) 的做法,那么 f(n)f(n)f(n) 可以在和这个做法相同的时间复杂度内算出。