1. 程式人生 > >2018NOIP知識梳理(二)——數論相關(一)

2018NOIP知識梳理(二)——數論相關(一)

線性篩

線性篩可以篩出一堆積性函式,逐一複習一下.

莫比烏斯函式

定義:μ(1)=1,nk,μ(n)=(1)k,,μ(n)=0
線上性篩中,每個數都只會被它最小的質因數所篩到.
質數的莫比烏斯函式顯然為-1
所以當 i%prime[j]==0 時,n已經有兩個prime[j]的質因子,所以μ(iprime[j])=0.
另一種情況i%prime[j]!=0,相當於對在當前i的基礎上又多了一個質因子,所以

μ(iprime[j])=μ(i)

尤拉函式

定義:ϕ(n)n,n
當p為質數時,ϕ(p)=p1
i%prime[j]==0,ϕ(iprime[j])=ϕ(i)prime[j]
i%prime[j]!=0,ϕ(iprime[j])=ϕ(i)ϕ(prime[j])=ϕ(i)(prime[j]1)

約數個數

篩約數個數時,需要要個輔助陣列,儲存最小質因子的個數.
約數個數


當i為質數時,d[i]=2,num[i]=1
i%prime[j]==0,d[iprime[j]]=d[i]/(num[i]+1)(num[i]+2),num[iprime[j]]=num[i]+1
i%prime[j]!=0,d[iprime[j]]=d[i](prime[j]+1),num[iprime[j]]=1

約數和

約數和
則需要的輔助陣列為最小質因子對答案的貢獻.
當i為質數時,sd[i]=i+1,f[i]=i+1
i%prime[j]==0,