Presentation is loading. Please wait.

Presentation is loading. Please wait.

質數 (Prime) 相關問題 Introducer: Hsing-Yen Ann Date: 2009/05/13.

Similar presentations


Presentation on theme: "質數 (Prime) 相關問題 Introducer: Hsing-Yen Ann Date: 2009/05/13."— Presentation transcript:

1 質數 (Prime) 相關問題 Introducer: Hsing-Yen Ann Date: 2009/05/13

2 2 判斷是否為質數 — 暴力法 Time complexity: O(n) 建立 [1,n] 之間的質數表 : O(n 2 ) // Time: O(n) public static boolean isPrime(int n) { for (int i = 2; i < n; i++) { if (n % i == 0) { return false; } return true; }

3 3 判斷是否為質數 — 改良暴力法 Time complexity: O(n 0.5 ) 建立 [1,n] 之間的質數表 : O(n 1.5 ) // Time: O(n^0.5) public static boolean isPrime(int n) { int sqrtN = (int)Math.sqrt(n); for (int i = 2; i <= sqrtN; i++) { if (n % i == 0) { return false; } return true; }

4 4 建立質數表 Sieve of Eratosthenes ( 譯:篩法 ) http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes

5 5 時間與空間分析 Time complexity: O((n log n)(loglog n)) Space complexity: O(n) n=10 7 時,計算量不超過 4×10 7 [1, 10 7 ] 之間的質數共有 664,579 個

6 6 進階應用 1 – 質因數分解 原本的實作法為: bool primeTable[n] 裡面記錄 true 或 false 改為記錄最小的 ( 或最大的 ) 質因數 int minPrimeFact[n]

7 7 進階應用 2 – 指數的數量計算 另外加上一個 array 記錄指數的數量 使用 DP 方式,可在 O(n) 時間計算完成


Download ppt "質數 (Prime) 相關問題 Introducer: Hsing-Yen Ann Date: 2009/05/13."

Similar presentations


Ads by Google