素數,即為只能被1和它本身整除的正整數,其中1不為正整數,素數又稱質數。
從2開始累加,同時對2進行標記素數,然後把2的其他倍數都去掉(或者標記為非素數),然後找到下乙個沒有標記的數,將其標記為素數,同時把它的其他倍數都去掉(或者標記為非素數)。如此反覆,知道標記完所有的數,這樣便找出了所有的素數。
計數質數
統計所有小於非負整數 n 的質數的數量。
示例:
輸入: 10
輸出: 4
解釋: 小於 10 的質數一共有 4 個, 它們是 2, 3, 5, 7 。
**:
int countprimes(int n) {
int size=0;
vectorprime(n,false);
for(int i=2;i用6n±1法求素數。
任何乙個自然數,總可以表示成為如下的形式之一:
6n,6n+1,6n+2,6n+3,6n+4,6n+5 (n=0,1,2,…)
顯然,當n≥1時,6n,6n+2,6n+3,6n+4都不是素數,只有形如6n+1和6n+5的自然數有可能是素數。所以,除了2和3之外,所有的素數都可以表示成6n±1的形式(n為自然數)。
根據上述分析,我們可以構造另一面篩子,只對形如6 n±1的自然數進行篩選,這樣就可以大大減少篩選的次數,從而進一步提高程式的執行效率和速度。
厄拉多塞篩法
簡介 1 厄拉多塞篩法 簡介 西元前250年,希臘數學家厄拉多塞 eeatosthese 想到了乙個非常美妙的質數篩法,減少了逐一檢查每個數的的步驟,可以比較簡單的從一大堆數字之中,篩選出質數來,這方法被稱作厄拉多塞篩法 sieve of eeatosthese 具體操作 先將 2 n 的各個數放入...
厄拉多塞篩法
厄拉多塞篩演算法 eratosthenes sieve 是一種求素數的方法,由古希臘數學家厄拉多塞提出。它的原理是,給定乙個數 n,從 2 開始依次將 sqrt 以內的素數的倍數標記為合數,標記完成後,剩餘未被標記的數為素數 從 2 開始 如此可省去檢查每個數的步驟,使篩選素數的過程更加簡單。厄拉多...
求素數(厄拉多塞篩法 暴力列舉法)
首先 找出第乙個素數,把他的倍數賦值為0 其次 找出其後第乙個不為0的數,該數為素數,把他的倍數賦值為0 最後 重複上述步驟.篩選法也叫厄拉多塞篩法,因為素數的倍數必然不是素數,所以把素數的倍數全置為0,用乙個新的陣列儲存那些不為0 的數,即為素數 include include void putp...