给定正整数,求
∑
i
=
1
n
g
c
d
(
i
,
n
)
\sum_{i=1}^n{gcd(i,n)}
∑i=1ngcd(i,n)
n<=2^32
枚举gcd:
∑
i
=
1
n
g
c
d
(
i
,
n
)
=
∑
d
∣
n
d
∑
i
=
1
n
[
g
c
d
(
i
,
n
)
=
d
]
\sum_{i=1}^ngcd(i,n)=\sum_{d|n}d\sum_{i=1}^n[gcd(i,n)=d]
∑i=1ngcd(i,n)=∑d∣nd∑i=1n[gcd(i,n)=d]
=
∑
d
∣
n
d
∑
i
=
1
n
/
d
[
g
c
d
(
i
,
n
/
d
)
=
1
]
\sum_{d|n}d\sum_{i=1}^{n/d}[gcd(i,n/d)=1]
∑d∣nd∑i=1n/d[gcd(i,n/d)=1]
=
∑
d
∣
n
d
∗
p
h
i
(
n
/
d
)
\sum_{d|n}d*phi(n/d)
∑d∣nd∗phi(n/d)
枚举n的约数可以直接求