線性篩篩\(\sigma\)
線性篩篩\(\sigma_0\)
\(p\)是質數,\(\sigma_0(p)=2\)
對於乙個\(i\),如果\(i\)和\(p\)互質,根據積性函式得\(\sigma_0 (i\ast p)=\sigma_0 (i)\ast \sigma_0 (p)\)
如果\(i\)和\(p\)不互質,那麼\(p|i\)
設\(i=\prod_^mp_i^\)
則\(p\ast i=\prod_^mp_i^\ast p_1^\)
\(\frac=\prod_^m p_i^\ast p_1^\)
\(\sigma_0(i)=\prod_^m(r_i+1)\)
\(\sigma_0(i\ast p)=\prod_^m(r_i+1)+(r_1+2)\)
\(\sigma_0(\frac) = \prod_^m(r_i+1)+r_1\)
設\(t=\prod_^m(r_i+1)\)
\(\sigma_0(i)=t\ast (r_1+1)\)
\(\sigma_0(i\ast p)=t\ast (r_1+2)=\sigma_0(i)+t\)
\(\sigma_0(\frac)=t\ast r_1=\sigma_0(i)-t\)
可得\(\sigma_0(i\ast p)=2\ast \sigma_0(i)-\sigma_0(\frac)\)
線性篩篩\(\sigma\)
\(p\)是質數,\(\sigma(p)=p+1\)
對於乙個\(i\),如果\(i\)和\(p\)互質,根據積性函式得\(\sigma(i\ast p)=\sigma(i)\ast \sigma(p)\)
如果\(i\)和\(p\)不互質,那麼\(p|i\)
設\(i=\prod_^mp_i^\)
則\(p_1\ast i=\prod_^mp_i^\ast p_1^\)
\(\frac=\prod_^m p_i^\ast p_1^\)
\(\sigma_i=\prod_^n\frac-1}\)
\(\sigma_=\prod_^n\frac-1}\ast \frac-1}\)
\(\sigma_}=\prod_^n\frac-1}\ast \frac-1}\)
設\(t=\prod_^n\frac-1}\)
\(\sigma_=t\ast \frac-1}\)
\(\sigma_=t\ast \frac-1}=\sigma_i+t\ast p_1^\)
\(\sigma_}=t\ast \frac-1}=\sigma_i-t\ast p_1^\)
兩邊乘\(p_1\)得到\(\sigma_}\ast p_1=p_1\ast \sigma_i-t\ast p_1^\)
後兩個式子相加可得\(\sigma_=(p_1+1)\ast \sigma_i-p_1\ast \sigma_}\)
AcWing 篩法求尤拉函式 篩法 尤拉函式
時 空限制 1s 64mb 給定乙個正整數n,求1 n中每個數的尤拉函式之和。共一行,包含乙個整數n。共一行,包含乙個整數,表示1 n中每個數的尤拉函式之和。1 n 10 6 題意 求1 n中每個數的尤拉函式之和。思路 在這個題目中我們不能直接分別去求1 n之間的尤拉函式,會超時,所以我們就可以根據...
篩法尤拉函式
尤拉函式 因為對於n來說,小於等於n的正整數有n個,但是因為n是素數,n與其本身並不互質,所以有n 1個數跟它互質。若n為質數p的k次方 那麼 n p 1 pk n pk p是質數 所以乙個數要想跟n互質的話應該不是p的倍數,p的倍數有p p,2 p,3 p pn 1 p,共有pn 1個,小於等於n...
積性函式篩法
很多常用的數論函式都是積性函式,而在題目中,我們常常需要線性 甚至更高 的篩法。對於積性函式,我們可以在篩素數的基礎上稍加修改,即可完成線性篩。首先,注意到積性函式的特點 f xy f x times f y 而可以線性篩的積性函式,需要知道以下兩個式子的快速求法 f p quad f p k p ...