**:
思路:判斷乙個整數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時候又標記一次,因...