首先:找出第乙個素數,把他的倍數賦值為0篩選法也叫厄拉多塞篩法,因為素數的倍數必然不是素數,所以把素數的倍數全置為0,用乙個新的陣列儲存那些不為0 的數,即為素數其次:找出其後第乙個不為0的數,該數為素數,把他的倍數賦值為0
最後:重複上述步驟....
#include #include void putprimer(int n)//篩選法求素數 }}
int main()
同樣的,在判斷2~n的過程也是可以優化的。舉個例子:2*2=4,1*4=4 我們可以發現每乙個數分解因式後必然乙個因數大於根號n,乙個因數小於根號n,極端情況下類似2×2=4的情況,兩個因數都等於根號n,因此可以把判斷條件換成2~根號n。 求素數(厄拉多塞篩法 暴力列舉法)
首先 找出第乙個素數,把他的倍數賦值為0 其次 找出其後第乙個不為0的數,該數為素數,把他的倍數賦值為0 最後 重複上述步驟.篩選法也叫厄拉多塞篩法,因為素數的倍數必然不是素數,所以把素數的倍數全置為0,用乙個新的陣列儲存那些不為0 的數,即為素數 include include void putp...
厄拉多塞篩法
簡介 1 厄拉多塞篩法 簡介 西元前250年,希臘數學家厄拉多塞 eeatosthese 想到了乙個非常美妙的質數篩法,減少了逐一檢查每個數的的步驟,可以比較簡單的從一大堆數字之中,篩選出質數來,這方法被稱作厄拉多塞篩法 sieve of eeatosthese 具體操作 先將 2 n 的各個數放入...
厄拉多塞篩法
厄拉多塞篩演算法 eratosthenes sieve 是一種求素數的方法,由古希臘數學家厄拉多塞提出。它的原理是,給定乙個數 n,從 2 開始依次將 sqrt 以內的素數的倍數標記為合數,標記完成後,剩餘未被標記的數為素數 從 2 開始 如此可省去檢查每個數的步驟,使篩選素數的過程更加簡單。厄拉多...