三種常用的素數判斷方法以及適用場景

2021-06-22 23:48:07 字數 373 閱讀 5896

一般素數判斷方法常用一下三種:

1、最簡單的方法:該演算法的思想就是用2~sqrt(n),依次去對n求餘,只要有乙個餘數是0,則n就不是素數。該方法雖然思路簡單,但效率太低。故不適合於大範圍的素數判斷。

2、篩選法:該方法不是用來具體判斷乙個數是否是素數,而是用於判斷乙個範圍內所有的素數。該方法的原理是:首先生成陣列,然後從第乙個開始依次標註它的倍數,然後從下乙個沒有被標註的開始,標註它所有的倍數,這樣依次下去,最後沒有被標註的都是素數。

3、素數判斷法:任何乙個合數都可以表現為適當個素數的乘積的形式,所以我們只用素數去除要判斷的數即可,比如要判斷100以內的素數,只用2,3,5,7就夠了,10000以內的數用100以內的素數判斷足以。(該方法效率最高,但適應性不高,只適合不大的數)

三種素數篩選方法

第一種 剔除2 3 4 5 6 的倍數 在i從2開始的增一變化過程中,剔除i的倍數即j i j是大於等於2的自然數,j的上限是問題規模m 為了減少重複步驟,可以每當i遞增到等於第乙個沒有被剔除的 素 數時再剔除該數的倍數,重複上述過程至i到達問題規模m的平方根 1 需要說明的三個問題 假設迴圈到第n...

三種常用素數構造法

一 最常用,但是也是效率最低的 直接判斷法 code cpp view plain copy include bool is prime intn intmain 二 構造素數表法 運用時,首先打表,效率會提公升很多 code cpp view plain copy include const in...

求素數的三種方法

具體篩法是 先把n個自然數按次序排列起來。1不是質數,也不是合數,要划去。第二個數2是質數留下來,而把2後面所有能被2整除的數都劃去。2後面第乙個沒劃去的數是3,把3留下,再把3後面所有能被3整除的數都劃去。3後面第乙個沒劃去的數是5,把5留下,再把5後面所有能被5整除的數都劃去。這樣一直做下去,就...