演算法 求素數

2021-09-01 23:10:39 字數 563 閱讀 3044

這裡我寫了幾個求素數的方法和大家交流一下

// ① 進行窮舉 時間複雜度o(n)

private static boolean primer1(int number) 

} return true;

}

// ② 使用 √n 進行計算 時間複雜度o(√n)

private static boolean primer2(int number) 

return !prime[number-1];

}

/// ④ 如第三個演算法 其時間複雜度已經是非常小了,但是對記憶體的要求確實非常大的,我們可以使用√n 的演算法和愛拉托遜斯演算法進行結合計算的數越大對記憶體的壓力減少越明顯

對於2到√n 還是有很多的數是不用進行計算的 ,如 2 4 6 8 , 其中2的倍數都不用進行計算

private static boolean primer4(int number) 

}} return true;

}

演算法 求素數

求101到200之間的素數並計算其總數 演算法分析 判斷素數的方法 用乙個數分別去除2到sqrt 這個數 如果能被整除,則表明此數不是素數,反之是素數。1.利用判斷素數的方法我們可以用每個數去除以2到sqrt 該數 但是再用迴圈遍歷的過程中會存在乙個很嚴重的問題。那就是101到200之間非素數也會有...

求素數演算法 Java

例如求1000以內的素數 方法一 定義 素數 除了1和它本身以外不再被其他的除數整數。public void printprime int j 2 while j方法二 合數 1 合數定義 指自然數中除了能被1和本身整除外,還能被其他數 0除外 整數的數 2 大於1的自然數,不是質數就是合數。3 如...

演算法 高效求素數

質數又稱素數。指在乙個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。1不是素數。乙個非素數可以由幾個素數因子相乘得到,這些因子一定小於這個數的開方,因此可通過這個性質求素數 void slow int n if flag cout cout 但這種演算法效率低,複雜度為o n s...