找出不大于n的最大質數
要找出不大於n的最大質數,可以使用以下算法:
-
初始化一個變數prime_count,值為0,用於記錄已經找到的質數的數量。
-
對於從2到n的所有數字i,執行以下步驟:
- 將變數i添加到質數列表prime_list中。
- 對於質數列表中的每個數字j,如果j不能整除i且j>i,則將i更新為j+1。
- 將質數列表prime_list和變數prime_count初始化為空。
- 在所有小於n且存在於prime_list中的數字j上,如果j沒有出現在prime_list中並且滿足j*prime_count > n,那麼更新prime_list為j + prime_list並更新prime_count為prime_count + 1。
- 如果prime_count等於n,那麼n就是最大的不大於n的質數。
這個算法的時間複雜度是O(n),因為它只需要遍歷從2到n的所有數字一次。
注意:這個算法假設n是一個正整數,並且不會在非質數上浪費時間。在實際套用中,您可能需要添加一些額外的代碼來處理輸入驗證和錯誤處理。