C 素數判斷法

2021-07-23 11:04:16 字數 402 閱讀 1342

**:

思路:判斷乙個整數n是否為素數,只需用2到n-1之間的每乙個整數去除,如果都不能被整除,那麼m就是乙個素數。

判斷定理:「n不能夠被不大於根號n的任何素數整除,則n是乙個素數」

用代買表示如下:

int is_prime = trure;

int i = 2;

while (i <= (sqrt(n)))  // 當i小於n的平方根時

優化:這個程式可以在找到第乙個餘數為0的數之後,即使推出迴圈,而不是繼續迴圈下去,那只會浪費cpu資源。

int is_prime = trure;

int i = 2;

while (i <= (sqrt(n)))  // 當i小於n的平方根時

i++;        // 把i加1}}

素數判斷(篩法)

最簡單寫法 int isprime int n for int i 2 i n i return1 初步優化 乙個數的因數是成對出現的,其中乙個因數在開方後的前面乙個在開方後的後面,所以只需判斷它前面的數就可以了,如果前面都沒有,那麼它後面更不會有.這樣就可以減少迴圈次數.int isprime i...

篩選法判斷素數

常規的判斷1 n以內的素數的時間複雜度為o n sqrt n 在n很大的時候時間很長,所以需要別的方法來判斷素數。這裡介紹篩選法。1 申請乙個陣列bool prime n 1 初始化所有的奇數下標為true,偶數下標為false 2例外 2 for int i 3 i sqrt n i 2 3 最後...

求素數,判斷素數,篩法

1.判斷素數 時間複雜度 o sqrt n 空間複雜度 o 1 include include sqrt函式標頭檔案 using namespace std bool prime int n return 0 不足之處 很多數被處理了不止1遍,比如6,在素數為2的時候處理1次,為3時候又標記一次,因...