找出不大于n的最大質數

要找出不大於n的最大質數,可以使用以下算法:

  1. 初始化一個變數prime_count,值為0,用於記錄已經找到的質數的數量。

  2. 對於從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是一個正整數,並且不會在非質數上浪費時間。在實際套用中,您可能需要添加一些額外的代碼來處理輸入驗證和錯誤處理。