Toolify

素數判定器 (含質因數分解和前後素數)

輸入 10^18 以下的非負整數。計算器用試除法測試素性 (在合理時間內對 ~10^15 決定性), 合數給出質因數分解。

97
是素數
前一個素數
89
下一個素數
101

運作原理

什麼是素數

素數是大於 1 的自然數, 除 1 和自身外沒有正因子。最初幾個素數: 2、3、5、7、11、13、17、19、23、29、31、37。它們是整數算術的「原子」 — 每個 ≥ 2 的整數可唯一表示為素數的乘積 (算術基本定理)。

按慣例 1 不是素數。0 和負數不是素數。2 是唯一的偶素數 — 其他每個偶數除了 1 和自身外還能被 2 整除, 所以是合數。

測試如何工作

我們用試除法: 檢查能否被 2 整除, 然後 3, 5, 7, 11, ... 直到 √n。如果都不能幹淨整除, n 是素數。我們用 6k±1 最佳化, 只檢查 6k+1 或 6k−1 形式的候選 (因為所有 > 3 的素數都是這種形式), 減少 2/3 的測試。

試除法對 ~10^15 以下的 n 快速 (亞秒)。之後, 需要高階測試如 Miller-Rabin (機率) 或 AKS (確定性)。我們限制在 10^18 以防止瀏覽器在極端輸入上凍結。

為什麼素數重要

密碼學: RSA 加密把兩個約 1000 位的素數相乘, 產生難以分解的數。安全性依賴大數分解的難度 — 這個問題已研究數千年。

數學教育: 質因數分解是基礎。最大公約數、最小公倍數、模運算、分數、數論的概念都建立在質因數結構上。

電腦科學: 雜湊表大小、隨機數生成器、許多演算法用素數的獨特整除性屬性。

常見問題

1 是素數嗎?

不。1 是「單位」, 不是素數。素數恰好有兩個不同的正因子 (1 和自身); 1 只有一個。

0 是素數嗎?

不。素數是 > 1 的整數。

2 是素數嗎?

是 — 2 是唯一的偶素數。所有其他偶數除 1 和自身外還有 2 作因子。

下一個素數怎麼找的?

從 n+1 遞增並在每步測試素性。任何數的 n × ln(n) 內總有素數, 所以即使大輸入也快速終止。

為什麼最大 10^18?

JavaScript BigInt 處理更大的, 但試除法變慢。10^18 對典型輸入安全亞秒檢查。再大請用專門工具如 SymPy 或 Mathematica。

可以檢查 1000 位素數?

本工具不能 — 試除法在那種規模太慢。密碼學用 Miller-Rabin 機率測試用於 1024 位 (~300 位) 素數。

什麼是 Mersenne 素數?

形如 2^p − 1 的素數。截至 2025 年, 只知道 51 個。已知最大素數 (M82589933) 是約 2500 萬位的 Mersenne 素數。

資料會上傳嗎?

不會。計算在本地; 不向伺服器傳送。

相關工具

最後更新: