1. 程式人生 > >【51nod】尤拉函式之和(數論,杜教篩)

【51nod】尤拉函式之和(數論,杜教篩)

文章目錄

題目

1239 尤拉函式之和

分析

尤拉函式 φ ( n )

\varphi(n) 表示小於等於 n n 的與 n n 互質的數的個數。
令答案 f
( n ) = i = 1 n
φ ( i ) f(n)=\sum\limits_{i=1}^{n}\varphi(i)

一個性質

可以證明 n = d n φ ( d ) n=\sum\limits_{d|n}\varphi(d)
下面是一個我理解的很不正經的證明:

列出以 n n 為分母的所有分數: 1 n , 2 n , . . . , n n \dfrac{1}{n},\dfrac{2}{n},...,\dfrac{n}{n}
可以理解 φ ( b ) \varphi(b) 表示的是以 b b 為分母的最簡真分數的個數。
a b ( a < b ) \dfrac{a}{b}(a<b) 為最簡分數,當且僅當 b n b|n ( a , b ) = 1 (a,b)=1
你仔細地想, d n φ ( d ) \sum\limits_{d|n}\varphi(d) 就表示出了 1 n , 2 n , . . . , n n \dfrac{1}{n},\dfrac{2}{n},...,\dfrac{n}{n} ,於是 n = d n φ ( d ) n=\sum\limits_{d|n}\varphi(d)

嘗試遞推

n = φ ( n ) + d n , d < n φ ( d ) \therefore n=\varphi(n)+\sum\limits_{d|n,d<n}\varphi(d)
φ ( n ) = n d n , d < n φ ( d ) \therefore\varphi(n)=n-\sum\limits_{d|n,d<n}\varphi(d)
f ( n ) = i = 1 n ( i d i , d < i φ ( d ) ) \therefore f(n)=\sum\limits_{i=1}^{n}\left(i-\sum\limits_{d|i,d<i}\varphi(d)\right)
f ( n ) = i = 1 n i i = 1 n d i , d < i φ ( d ) = n ( n + 1 ) 2 i = 1 n d i , d < i φ ( d ) \therefore f(n)=\sum\limits_{i=1}^{n}i-\sum\limits_{i=1}^{n}\sum\limits_{d|i,d<i}\varphi(d)=\dfrac{n(n+1)}{2}-\sum\limits_{i=1}^{n}\sum\limits_{d|i,d<i}\varphi(d)

i = 1 n d i , d < i φ ( d ) \sum\limits_{i=1}^{n}\sum\limits_{d|i,d<i}\varphi(d) ,算貢獻,則可以等價為: d = 1 n i = 1 n d φ ( d ) = d = 1 n ( n d φ ( d ) ) \sum\limits_{d=1}^{n}\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\varphi(d)=\sum\limits_{d=1}^{n}\left(\lfloor\frac{n}{d}\rfloor·\varphi(d)\right) ,下面這個圖可以幫助理解,但我無法言說:
d的貢獻
(其中 k = n d k=\lfloor\frac{n}{d}\rfloor