你在車庫拍賣上買了一大箱隨機的電腦零件。 你開始把這些零件組裝起來,打造自訂的電腦。
你想測試各種零件組合的效能,於是決定自己寫一個效能測試程式,看看你的電腦表現如何。 你選擇了著名的「Sieve of Eratosthenes」演算法,這是個古老的演算法,但應該能讓你的電腦效能發揮到極限。
你的任務是寫一個程式,實作埃拉托斯特尼篩法,找出小於或等於指定數字的所有質數。
質數是大於 1、而且只能被 1 和自己整除的數字。例如 2、3、5、7、11 和 13 都是質數。相對地,6 就_不是_質數,因為它除了能被 1 和自己整除外,還能被 2 和 3 整除。
使用埃拉托斯特尼篩法時,你要先建立一份清單,列出 2 到指定數字之間的所有數字。接著反覆進行以下步驟:
不斷重複這些步驟,直到清單中的每個數字都處理過為止。最後,所有沒有被標記的數字都是質數。
測試並不會檢查你是否實作了這個演算法,只會檢查你有沒有得出正確的質數清單。想確認自己有沒有正確實作篩法,一個好的起手測試就是檢查你有沒有用到除法或取餘數的運算。
假設你要找出小於或等於 10 的質數。
你已經檢查過所有數字,發現 2、3、5 和 7 仍然沒有被標記,這表示它們就是小於或等於 10 的質數。