原文:由素數篩法到歐拉函數(歐拉函數,線性篩)

前言 蒟蒻最近准備狂補數學啦TAT 基於篩素數,可以同時快速求出歐拉函數。於是蒟蒻准備從這里入手,整理一下實現的思路。 篩素數及其一種改進寫法 傳統篩素數的做法 埃式篩 是,利用已知的素數,去篩掉含有此質因子的合數,十分巧妙。由於不是本文的重點,就只貼一下代碼吧 復雜度不會證,不過較近似於線性 大概是 O n log log n 的樣子 。 實際上蒟蒻打了個表,N與篩的次數大概有這樣的關系 為什么 ...

2018-04-25 23:04 0 1550 推薦指數:

查看詳情

素數篩法詳解:素數

當數據量很大時,我們不能一個一個去判斷每個數是否為素數,那么我們可以采用來做 由於埃氏會存在某個合數多次被的情況,所以 的核心思想就是:讓每個合數只被它的的最小質因子篩選一次,沒有重復 :時間復雜度為O(n),所以也稱為線性,但只能到1e8這么大 ...

Wed Oct 07 03:58:00 CST 2020 0 561
【學習筆記】篩法線性素數

算法介紹:篩法是在O(N)線性時間內實現素數篩選的優秀算法。 算法思路:總體上與Eratosthenes篩法類似,也是用較小的數去較大的合數。 關鍵思路在於:每一個合數都保證是被其最小的質因子去的,下簡稱稱該條件為線性條件。 結合代碼分析: 對每一個數i,無論其是否為質數 ...

Mon Oct 25 02:20:00 CST 2021 0 1121
線性篩法(篩法)求素數

寫$\text{O}\left( n \log{\log{n}}\right)$的篩法很長時間了,我卻從來沒想過它的優化.偶然間看到線性篩法,心想大約是不錯的優化,於是便爬去學習下. 首先,$\text{O}\left( n \log{\log{n}}\right)$的篩法肯定要比$\text ...

Sat Oct 04 23:24:00 CST 2014 0 10319
函數 【數學】

系列 函數:phi(i)表示 1~i 中與 i 互質的數的個數。 利用這個定義就可以在素數的同時,求出函數。 設 函數 為 phi(x) , p 為素數: 1、如果 i % p == 0 ,那么 phi (i*p) = phi (i) * p。 顯然,與 i ...

Sun Aug 19 04:04:00 CST 2018 0 827
線性素數

線性是一個很基礎的算法,但是我一直沒學。直到一次考試,因為O(n√n)會超時,用了表,結果被卡了代碼長度,於是開始學習。 算法思路: 對於每一個數(無論質數合數)x,掉所有小於x最小質因子的質數乘以x的數。比如對於77,它分解質因數是7*11,那么掉所有小於7的質數*77, ...

Wed Oct 10 00:50:00 CST 2018 0 5742
線性函數

蒟蒻要開始打數論模板了。 函數:小於n且與n互素的數個數,記為φ(n) 它有這樣幾個優越的性質:轉自https://yq.aliyun.com/articles/15314 1. phi(p) == p-1 因為素數p除了1以外的因子只有p,所以與 p 互素的個數是 p ...

Thu Sep 14 03:11:00 CST 2017 0 1390
【學習筆記】線性函數

目錄 Bases 篩法 Code View Bases 這里給出的篩法是以線性素數的方法為基礎的。 利用了函數是積性函數的性質:對於任意互質的數\(a\),\(b\),有\(f(a*b)=f(a)*f(b)\) 篩法 類比於線性素數 ...

Fri Aug 07 22:57:00 CST 2020 0 1157
素數(埃氏篩法

素數,其實是將一堆數中的合數給掉,留下素數的一個過程。求某個大小范圍內的素數個數,是用到素數的最最基礎的問題。 首先要給出關於素數的最基本的知識:判斷單個數是否為素數。 判斷一個整數n是否為素數 首先i從2開始枚舉到 \(\sqrt{n}\) ,然后一旦n可以被i整除,就返回 ...

Sat Aug 14 05:39:00 CST 2021 0 134
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM