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