今天讓我們來學一學積性函式的篩法

2021-08-21 16:11:02 字數 1029 閱讀 3940

第一件事情我們要知道的是:積性函式都可以線性篩。(就是說複雜度是o(n)o

(n

)

積性函式的性質不說了,在說說常見的幾個積性函式。 μ(

n)μ (n

):莫比烏斯函式 ϕ(

n)ϕ (n

):尤拉函式 d(

n)d (n

):乙個數n的約數個數 σ(

n)σ (n

):乙個數n的約數和

int prime[100005];

int mu[maxx];

bool p[maxx];

int cnt=0;

void init()

for(int j=0;j*prime[j]<=maxx;j++)}}

}

尤拉函式:

int prime[100005];

int phi[maxx];

bool p[maxx];

int cnt=0;

void init()

for(int j=0;j*prime[j]*prime[j]]=true;

if(i%prime[j])

phi[i*prime[j]]=phi[i]*phi[prime[j]];

else}}

}

約數個數d(n)

int prime[100005];

int d[maxx];

int a[maxx];

bool p[maxx];

int cnt=0;

void init()

else}}

}

σ(n)σ

(n

)的用處似乎不多啊,等遇到了在寫。

其實只要理解了素數線性篩的本質,以上這些函式的篩法其他也挺簡單的,很好理解的。

抽點時間讓我們一起來學linux系統

抽點時間讓我們一起來學linux系統 相對於windows,linux有太多的優點,一般大家都知道,比如說開源,穩定等,其實最重要的是,當你真正用起來的時候發現,效率非常高,他是程式設計師的福音,linux版本眾多,各有各的優缺點,這正說明了起開放性,各大公司都在不停地更新自己的產品,使linux發...

我們一起來學Shell shell的函式

我們一起來學shell 初識shell 我們一起來學shell shell的變數 我們一起來學shell shell的條件判斷 我們一起來學shell shell的迴圈控制 我們一起來學shell shell的陣列 我們一起來學shell shell的函式 我們一起來學shell shell的併發及...

讓我們一起來開發FantasyPython吧

自從我把fantasypython雛形的雛形擺上之後,我一直都在努力學習著多執行緒開發,爭取早日發布fantasypython0.0.1。但是由於自己天資愚鈍,再加上工作比較繁忙,精力有限,研究多日仍然未有進展。sigh,書到用時方恨少啊!看著時間在我的碌碌無為中一天一天過去,我真的很著急,希望能夠...