數論 素數 素數相關基礎 尤拉函式與尤拉定理

2021-06-22 18:40:53 字數 664 閱讀 3225

尤拉定理與尤拉函式在數論方面的應用十分廣泛,幾乎所有的形如a^n % k = 1的東西都可以往上靠。

這裡暫時不細說怎麼用,先講基礎內容。

1、 尤拉函式  

尤拉函式 φ(n)表示不超過n且與n互素的正整數的個數 。

計算公式為: φ(n)=n*(1-1/p1)*(1-1/p2)*…其中p1,p2…為n的質因數

2、尤拉定理

若a,n是正整數,且a,n互質,則有a^ φ(n) mod n =1。

實際上這是費馬小定理的乙個推廣。

我們看費馬小定理:a^(p-1) % p =1,而對於尤拉函式φ(n),當n為素數時,根據其實際意義,顯然φ(n)=n-1,帶入尤拉定理的式子,其實就得到了飛馬小定理。

3、尤拉函式打表

在實際運用中,用樸素方法去一次次求尤拉函式的值是很慢的,所以我們可以採用打表的方法來提高效率。

尤拉函式的打表利用了類似於篩選法打表的思路:列舉i,如果i是乙個質數,那麼把i的整倍數都乘上(1-1/i),注意實際操作中我們應該是/i*(i-1)。

for (int i=1;i<=100000;i++)

for (int i=1;i<=100000;i++)

}}

prime陣列就是我們之前用篩選法打出來的素數表。

尤拉篩 素數 基礎

求乙個數是不是素數,我們最開始用到的方法是從2開始跑到這個數的前一項,如若這些數都不能被這個數整除,那麼就稱這個數是素數 素數的概念是除了1和它本身之外不再有其他因數 除了1 我們稱這樣的數為素數。如果我們就按一般思路去實現求解這個數是不是素數,那麼會用for迴圈從2開始跑到這個數的前一項,每個數都...

數論 線性素數篩(尤拉法)

任何合數都能表示成一系列素數的積。線性素數篩的主要思想是每個合數必有乙個最小素因子,每個合數僅被它的最小素因子篩去正好一次,所以為線性時間。比如說 12 只能被 2 篩掉,12 2 6,不能被3篩掉,12 3 4 中體現在 if i prime j 0 break prime陣列中的素數是遞增的,當...

尤拉函式 素數篩

尤拉發現求小於等於n的正整數中有多少個數與n互質可以用這個公式 euler x x 1 1 p1 1 1 p2 1 1 p3 1 1 p4 1 1 pn 其中p1,p2 pn為x的所有素因數,x是不為0的整數。euler 1 1 唯一和1互質的數就是1本身 尤拉公式的延伸 乙個數的所有質因子之和是e...