素數:大於 1 的自然數,除 1 和自身外無其他因數。朴素判斷:對 n 從 2 試除到 n-1,若無法整除則為素數。時間複雜度 O(n),n=200 尚可,大數完全不可行。
n = a × b,則 a ≤ √n 或 b ≤ √n。只需試除到 floor(√n)。break 與 continue 機制深度解析
break:跳出最內層迴圈,繼續執行迴圈後的語句。continue:跳過本次迴圈剩餘語句,直接進入下一次迭代的判斷。本例中 break 用於「一旦發現因數立即停止試除」,極大減少無效運算。
若需大量素數(如 1 百萬以內),試除法仍慢,應用篩法 O(n log log n):
總結
素數判斷是演算法優化的經典教材:從定義出發,利用數學性質(偶數排除、對稱因子)將複雜度從 O(n) 降至 O(√n),再配合
break提前退出,工程上足以應對中小規模需求。大規模場景請直接上篩法或概率檢測。