尤拉函式的線性篩法

2021-08-17 01:51:46 字數 789 閱讀 5273

尤拉函式:對正整數n,尤拉函式是小於等於n的數中與n互質的數的數目。

尤拉函式又稱為φ函式。

下面是尤拉函式的一些性質:

如果n為某乙個素數p,則φ§=p-1;

如果n為某乙個素數p的冪次p

ap^a

pa,則φ(p

ap^a

pa)=(p-1)

p (a

−1

)p^(a-1)

p(a−1)

;**如果n為任意兩個互質的數a,b的積,則:φ(a*b)=φ(a)φ(b);

如果p為質數。

*如果i mod p =0,那麼φ(i*p)=φ(i)p;

如果i mod p ≠0,那麼φ(ip)=φ(i)(p-1);

**實現

#includeusing namespace std;

typedef long long int ll;

const int n=10000;

int phi[n+10],prime[n+10],tot,ans;

bool vis[n+10];

void getphi()

for(j=1;j<=tot;j++)

else}}

}int main()

return 0;

}

尤拉函式線性篩法

首先我們知道尤拉函式是1到n 1中與n互質的數的個數。除此之外,我們還要知道一些性質 當p是素數時 1.phi p p 1。不多bb 2.phi p k p 1 p k 1 證明 令n p k,小於 n 的正整數共有 p k 1 個,其中與 p 不互素的個數共 p k 1 1 個,它們是 1 p,2...

線性篩法(尤拉篩法)

嗯在剛剛 沒錯就是在幾分鐘之前 我學會了線性篩法 實在是乙個很好的篩法 正常的篩法,都會對乙個數篩多次 但是尤拉篩法不會 尤拉篩法是用它的最大因數去篩 別跟我說最小質因數,那個很難讓人理解 雖然最小質因數和最大因數是一樣的 我們假設乙個數k,它是t的最大因數 容易知道t是不唯一的 那我們要乘以乙個質...

線性篩法(尤拉篩)

從前有乙個素數篩法叫埃拉託斯特尼篩法,它的思想很簡單,把1 n以內素數的整數倍的數字劃掉,留下的就全是素數,但是它的複雜度是o nlglgn 對於大量不友好資料會跪,於是線性曬登場了。include using namespace std int prime 1100000 primesize,ph...