什麼是質數檢測工具?
即時判斷任意數字是否為質數。對於合數,顯示完整的質因數分解。還可生成任意範圍內的質數列表,查找上一個/下一個質數,探索質數規律——適用於數學教育、密碼學基礎和數論研究。
輸入沒有上限——落在 JavaScript 安全整數範圍內的數走更快的試除法,更大的數則交給確定性 BigInt Miller-Rabin 測試,因此密碼學量級的素數也能準確判定。素因數分解會展開整棵樹(84 → 2 × 42 → 2 × 21 → 3 × 7);對於很大的合數,超過 10^7 的剩餘餘因子會直接顯示,而不再繼續分解。範圍搜尋上限 1000 萬筆,保證結果可滾動瀏覽;還能直接查第 N 個素數,適合程式競賽和數論練習。
使用方法
- 輸入任意正整數判斷是否為質數——即使是較大的數字也能即時得出結果。
- 對於合數,查看完整的質因數分解樹;對於質數,查看其上下最近的質數。
- 使用範圍查找功能列出兩個數之間的所有質數,或生成前N個質數。
何時使用
- 校對數論或離散數學作業的答案。
- 為雜湊函式或入門級密碼學範例挑選素數模數。
- 為 Project Euler 或競賽程式題快速生成前 N 個素數。
結果
輸入97是質數,輸入84不是質數,因數為2²×3×7。生成1到100之間的所有質數,可見該範圍內共有25個質數。
常見問題
- 判斷一個很大的數是不是素數要多久?
- 常見輸入都在 10 毫秒以內。帶確定性見證集的 Miller-Rabin 大約是 O(log³ n) 次模冪運算,即使是幾十位數,也只要幾十次乘法。無論你查的是 12 位數還是密碼學量級的素數,介面都會瞬間出結果。
- 素因數分解一定唯一嗎?
- 唯一。算術基本定理保證每個大於 1 的整數都有且只有一種素因數分解(忽略次序)。工具按升冪排列,重複因子用指數表示(84 = 2² × 3 × 7),寫法與課本一致。
- 最多能檢測多大的數?
- 沒有固定上限。落在 JavaScript 安全整數範圍內的數走更快的試除法,更大的數由 BigInt Miller-Rabin 測試處理。該測試對 3.3 × 10^24 以下的每個數都可證明完全正確,遠超此範圍後仍是極強的機率素性測試,因此能輕鬆判定密碼學量級的素數。
- 為什麼 0 和 1 不算素數?
- 素數的定義是恰好有兩個不同正因數(1 和自身)的正整數。1 只有一個因數(自己),不符合;0 則有無窮多個因數。排除這兩個之後,素因數分解的唯一性才不需要特殊處理。
- 素數和現實的密碼學有什麼關係?
- RSA 取兩個 1024 位元左右的大素數相乘,把乘積當作公鑰的一部分公開。把乘積分解回兩個素數極難,這就是 RSA 的安全基礎。檢測素性本身仍然很快,因此金鑰生成不是瓶頸。