透過 MCP 連接 →

輸入計算

請輸入一個大於 1 的整數。

數學公式

廣告

結果

Result for 2
prime
質數判斷結果
數字 2
因數 Its only factors are 1 and 2
前一個質數 No previous prime exists
下一個質數 3

什麼是質數?

質數(也稱為「素數」)是指大於 1,且只有兩個正因數(1 與本身)的整數。如果一個數字的因數超過兩個,就稱為合數。數字 1 比較特別:它只有一個因數,因此既不是質數,也不是合數。這個計算機會判斷你輸入的數字是質數還是合數、列出它的所有因數,並顯示前一個與下一個質數。

質數排成單行點與合數排成矩形點陣的對比
質數無法用點排成矩形,而合數可以。

使用方法

在欄位中輸入一個大於 1 的整數後送出。工具會將它歸類為質數或合數、重新顯示該數字、列出所有因數(合數適用),並回報它下方最大的質數與上方最小的質數。

計算原理說明

我們採用具有 \(6k\pm1\) 最佳化的確定性試除法。首先把 2 與 3 視為已知質數,並排除偶數以及 3 的倍數。接著只測試形如 \(6k-1\) 與 \(6k+1\) 的候選因數(5、7、11、13……),測試範圍到 \(n\) 的平方根為止。如果都無法整除 \(n\),\(n\) 就是質數。判斷質數的條件可寫為:

$$n = \text{Number} \text{ is prime} \iff n > 1 \;\wedge\; \nexists\, d \in [\,2,\ \lfloor\sqrt{n}\rfloor\,] : n \bmod d = 0$$

之所以只需測試到平方根,是因為任何大於平方根的因數,必定會與一個小於平方根的因數成對出現。

Advertisement
圖示說明試除法只檢驗到 n 的平方根為止的除數
試除法只需測試從 2 到 n 的平方根之間的除數。

實例演算

以 \(n = 97\) 為例,它的平方根大約是 \(9.85\)。它是奇數,也不是 3 的倍數。我們測試 5(\(97 \bmod 5 = 2\))與 7(\(97 \bmod 7 = 6\))。下一個候選數是 11,但 \(11 \times 11 = 121 > 97\),所以停止測試。由於找不到任何因數,因此 97 是質數。前一個質數是 89,下一個質數是 101。

常見問題

1 是質數嗎?不是。1 只有一個因數,所以它既不是質數,也不是合數。

2 是質數嗎?是的。2 是最小的質數,也是唯一的偶質數,它沒有前一個質數。

為什麼只有合數才列出因數?根據定義,質數的因數只有 1 與本身,因此工具只會直接說明這一點。合數可能有許多因數,會依照由小到大的順序列出。

最後更新: