題目說明:輸入一正整數N,求出介於≦N的所有質數。
程式分析:這題是剛學習程式語言時都會遇到的一道經典題,而第一個想到的解題方法不外乎就是採用暴力解(意指從2到N,每個値都從2開始除到sqrt(i),看有沒有可以整除的値在判斷),不過這邊我不採用這種解法,而是使用
Sieve of Eratosthenes演算法,並計算該演算法與暴力解之效率差別。
(在Sieve of Eratosthenes質數表的部份我沒有進行Boolean陣列重置的動作,因為這樣可降低執行上的時間)
-執行結果
以輸入777777而言,暴力解的速度就足足慢了約22倍
那麼在來試試更大一點的値:7777777,面對越大的値,暴力解的速度也顯得非常沒有效率,而這次暴力解的速度約為SoE質數表的73倍之慢...