Powerful Number的定义是所有质因子的指数都大于
1
1
1数,简单积一下发现只有
O
(
n
)
O(\sqrt n)
O(n)个。下面是它在求积性函数前缀和中的应用。
设我们要求积性函数
f
(
n
)
f(n)
f(n)的前缀和
F
(
n
)
F(n)
F(n),考虑我们能找到一个性质更好(前缀和易求)的积性函数
g
(
n
)
g(n)
g(n),满足对于质数
p
p
p有
g
(
p
)
=
f
(
p
)
g(p)=f(p)
g(p)=f(p)。我们考虑
f
/
g
=
h
f/g=h
f/g=h,由于
f
,
g
f,g
f,g都是积性函数,所以有
f
(
1
)
=
g
(
1
)
=
1
f(1)=g(1)=1
f(1)=g(1)=1,又因为
f
(
p
)
=
g
(
p
)
×
h
(
1
)
+
g
(
1
)
×
h
(
p
)
f(p)=g(p)\times h(1)+g(1)\times h(p)
f(p)=g(p)×h(1)+g(1)×h(p),所以有
h
(
1
)
=
1
,
h
(
p
)
=
0
h(1)=1,h(p)=0
h(1)=1,h(p)=0。又因为
h
h
h也是积性函数,所以
h
h
h只会在Powerful Number处有值,其余处都是
0
0
0。(假设Powerful Number的集合为
P
N
\mathbb{PN}
PN)于是有,
F
(
n
)
=
∑
x
y
≤
n
g
(
x
)
h
(
y
)
=
∑
y
∈
P
N
h
(
y
)
G
(
⌊
n
y
⌋
)
F(n)=\sum_{xy\le n}g(x)h(y)=\sum_{y\in \mathbb{PN}}h(y)G(\lfloor \frac n y\rfloor )
F(n)=xy≤n∑g(x)h(y)=y∈PN∑h(y)G(⌊yn⌋)
于是在
h
h
h的单点值好求,
g
g
g的前缀和好求的情况下就可以很快地求出
F
F
F了。