2023年5月27日
解題
質數寫法的固化思維使人第一想法就寫出下面的**
厄拉多塞篩法通過質數推算出接下來的非質數,一直算到n。
舉個例子:
質數2,我們可以推算出2x2=4、2x3=6、2x4=8等,能發現質數的倍數都是非質數,標記下來
接下來到質數3,我們可以推算出3x2=6、3x3=9、3x4=12等,這裡能發現乙個可以優化的點,3x2=6這個點已經在2x3=6時標記它為非質數過了,現在是冗餘操作,可以讓質數3從3x3=9開始往後推算,那就是從質數i的ixi開始
接下來是到4了,之前我們在質數2的時候就標記了4是非質數,所以跳過它,不做它的倍數推算
通過這個例子,大概能了解厄拉多塞篩法在這道題的做法,是用空間來換時間的一種演算法,通過結果也很明顯的看出來這一點。
class
solution
}//遍歷計算質數個數
C 找質數(素數)厄拉多塞篩法
c 找質數 素數 厄拉多塞篩法 質數 prime number 又稱素數,有無限個。指整數在乙個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。換句話說,只有兩個正因數 1和自己 的自然數即為素數 除了1和它本身以外不再有其他的因數 根據算術基本定理,每乙個比1大的整數,要麼本身是...
python3計算質數 (厄拉多塞篩法)
ls3 1 6 2 起始位置為2,終止位置為6,步長為2 def countprimes self,n int int if n 3 return 0 else 首先生成了乙個全部為1的列表 output 1 n 因為0和1不是質數,所以列表的前兩個位置賦值為0 output 0 output 1 ...
厄拉多塞篩法
簡介 1 厄拉多塞篩法 簡介 西元前250年,希臘數學家厄拉多塞 eeatosthese 想到了乙個非常美妙的質數篩法,減少了逐一檢查每個數的的步驟,可以比較簡單的從一大堆數字之中,篩選出質數來,這方法被稱作厄拉多塞篩法 sieve of eeatosthese 具體操作 先將 2 n 的各個數放入...