要判斷一個整數的質因數分解,就是把它寫成質數的乘積——質數是像 2、3、5、7、11 這樣無法再拆解成更小整數因數的不可分割基本單位。根據算術基本定理,每一個大於 1 的整數,都恰好只有一種這樣的分解方式(不計因數的順序):360 永遠可以拆解成 2 × 2 × 2 × 3 × 3 × 5,而 97 因為本身是質數,除了它自己之外不會分解出任何東西。因此實際的問題並不在於這個分解是否存在,而在於如何針對眼前這個特定數字快速找出它。試除法能靠手算解決這個問題:反覆用能整除的最小質數去除,直到沒有餘數為止,而Prime Factorization Calculator 會立即替你執行同樣的試除過程,同時提供因數樹與指數形式。

質因數分解實際上代表什麼
質數是大於 1、且只能被 1 與自身整除的整數,因此 2、3、5、7、11、13 等等都符合,而 1 則不符合。合數則是大於 1 的其他所有數字,它可以被拆解成因數,而這些因數通常還能再繼續拆解,直到每個剩下的部分都是質數為止。質因數分解,就是把這種拆解一路做到底,並把結果寫成質數乘積的動作。
這件事之所以能被明確定義,原因就在於算術基本定理:每一個大於 1 的整數,都恰好只有一種質因數分解方式(不計因數順序)。兩個不同的人分解 360,都會得到 2³ × 3² × 5;不會有人得到 3 × 5 × 2³,或任何其他改變了底層質數多重集合的排列方式。指數形式只是一種記法上的捷徑:2³ 代表三個 2 相乘(2 × 2 × 2 = 8),因此 2³ × 3² × 5 = 8 × 9 × 5 = 360。
| 數字 | 類型 | 質因數分解 | 指數形式 |
|---|---|---|---|
| 2 | 質數 | 2 | 2¹ |
| 7 | 質數 | 7 | 7¹ |
| 97 | 質數 | 97 | 97¹ |
| 4 | 合數 | 2 × 2 | 2² |
| 12 | 合數 | 2 × 2 × 3 | 2² × 3¹ |
| 360 | 合數 | 2 × 2 × 2 × 3 × 3 × 5 | 2³ × 3² × 5¹ |
為什麼質因數分解一再出現
質因數分解不只是教科書上的主題。它是你在學校、考試,以及實際應用中會遇到的好幾個問題,已知最快的解法。
- 化簡分數。 要化簡一個分數,先把分子與分母都做因數分解,然後消去兩者共有的每一個質數。24/36 會變成 2³ × 3 / 2² × 3²,消去 2² × 3 後就得到 2/3。
- 最大公因數(GCD)。 兩個數字的最大公因數,是它們共有的質數的乘積,每個質數取兩者指數中較小的那一個。一旦你有了分解結果,最大公因數幾乎是自然而然就寫出來了。
- 最小公倍數(LCM)。 最小公倍數是所有出現過的質數的乘積,每個質數取兩個數字中較大的那個指數。每當你需要一個共同分母或週期性排程時,它都是最大公因數標準的搭檔。
- 因數個數與因數總和。 如果一個數 n = p₁^e₁ × p₂^e₂ × … × pₖ^eₖ,那麼因數的個數就是 (e₁ + 1)(e₂ + 1) … (eₖ + 1),而因數總和則是 ∏ (pᵢ^(eᵢ+1) − 1) / (pᵢ − 1)。兩者都能從分解結果一步直接算出。
- 密碼學。 分解非常大的數字之所以困難,正是 RSA 風格的公開金鑰加密能保持安全的關鍵;對一個 12 位數的數字來說一瞬間就能完成的同一種運算,對實際金鑰所使用的 600 位數數字而言,卻變得不可行。
如何用手算找出質因數(試除法)
任何一堂數學課都會要求你會用的經典方法,就是試除法。這個作法簡短到可以直接背下來。
- 從你的數字 n 開始,假設 n 大於 1。
- 嘗試盡可能多次用 2 去除,每成功一次就記下一個 2。當餘數不再是 0 時就停止。
- 移到下一個奇質數:3,接著是 5,然後是 7,以此類推。每當某個質數能把目前的商整除時,就記下這個質數。
- 當目前的商變成 1 時就停止。你按順序記下的這些質數,就是完整的質因數分解結果。
你只需要測試到目前商的平方根為止的質數;如果到那個時候還剩下比這更大的數字,它本身必定就是質數。以 360 為例,平方根大約從 19 開始,但這個過程會提早許多就結束,因為 360 在 5 的時候就已經沒有因數可分解了。
如何讀懂因數樹
因數樹就是把試除法畫成一張圖。把原始數字放在最上方,把它拆成兩條分支,一側是一個小的質因數,另一側是商,然後對這個商重複同樣的動作。當每條分支的末端都是質數時,這個分解就完成了。
以 360 為例,這棵樹從 360 → 2 × 180 開始,接著 180 → 2 × 90,然後 90 → 2 × 45,接著 45 → 3 × 15,最後 15 → 3 × 5。葉節點是 2、2、2、3、3 與 5,恰好就是你用試除法會得到的同樣六個因數,只是以空間方式排列出來。因數樹很適合用來教學,因為拆分的順序是有彈性的(你也可以先拆出 5,而不是先拆 2),而這張圖也清楚說明了為什麼答案是唯一的:不論你怎麼修剪這棵樹,葉節點最終都必定會得出同一組質數多重集合。
如何使用 Prime Factorization Calculator
Prime Factorization Calculator 會替你執行試除法,並一次顯示答案所有有用的形式。要判斷任何整數的質因數分解:
- 在輸入框中輸入任何大於 1 的整數,例如 360。
- 觀察質因數分解、指數形式(2³ × 3² × 5),以及因數樹即時更新。
- 讀取質因數清單、因數總個數,以及標示這個數字本身是否為質數的指標。
一切都在你的瀏覽器本機執行,因此你輸入的任何數字都不會被上傳到伺服器。你可以放心把它用於作業、課堂示範,或任何你不想被記錄下來的數字運算。
實例演練:從頭到尾分解 360
為了完整示範這個方法,我們取 n = 360 並套用試除法。
第 1 步。 360 ÷ 2 = 180,所以 2 是一個因數,我們記下它。商:180。
第 2 步。 180 ÷ 2 = 90,所以 2 再次是一個因數。商:90。
第 3 步。 90 ÷ 2 = 45,所以 2 第三次成為因數。商:45。
第 4 步。 45 是奇數,所以我們跳過 2,改試 3。45 ÷ 3 = 15,所以 3 是一個因數。商:15。
第 5 步。 15 ÷ 3 = 5,所以 3 再次是一個因數。商:5。
第 6 步。 5 是質數,所以我們記下它一次。商:1。完成。
按順序記下的因數是 2、2、2、3、3、5。以指數形式表示就是 2³ × 3² × 5¹。快速驗算一下:2³ × 3² × 5¹ = 8 × 9 × 5 = 360,與原始數字相符。此計算機能在一瞬間就回傳同樣的結果,並附上視覺化的因數樹與因數個數。從同一組分解結果,可以進一步得出完整的因數清單:1、2、3、4、5、6、8、9、10、12、15、18、20、24、30、36、40、45、60、72、90、120、180、360,這 24 個因數的總和是 1170。
直接從指數推導出因數個數與因數總和
一旦你有了指數形式 n = p₁^e₁ × p₂^e₂ × … × pₖ^eₖ,就能不必再做額外運算,直接得出兩個有用的總數。因數個數公式是 ∏ (eᵢ + 1),也就是把每個質數的(指數 + 1)相乘。因數總和公式則是 ∏ (pᵢ^(eᵢ+1) − 1) / (pᵢ − 1),也就是先對每個質數求出一個等比級數的總和,再把結果相乘合併。
| 數量 | 公式 | 代入 360 = 2³ × 3² × 5¹ | 結果 |
|---|---|---|---|
| 因數個數 | (e₁+1)(e₂+1)(e₃+1) | (3+1)(2+1)(1+1) | 4 × 3 × 2 = 24 |
| 因數總和 | ∏ (pᵢ^(eᵢ+1) − 1) / (pᵢ − 1) | 15 × 13 × 6 | 1170 |
24 個因數、因數總和 1170,這兩個數字,與計算機在因數樹旁回報的結果相符。它們也提供了一種清楚檢查自己算法的方式:如果計算機回報的個數,與你其中某個質數的 (eᵢ + 1) 對不上,那就代表你打錯了數字,或是在試除過程中漏掉了某個質數。
此計算機能處理多大的數字
你可以分解任何不超過 1,000,000,000,000(也就是一兆)的整數。試除法在這個規模下依然能快速完成的原因,是你只需要測試到該數字平方根為止的質數因數,對一個 12 位數的輸入來說最多大約一百萬個候選值,而每一次測試都只是一次除法。即使是像 600,851,475,143 = 71 × 839 × 1471 × 6857 這樣棘手的例子,儘管它有四個大小差異很大的質因數,也能在遠低於一秒的時間內算出結果。
輸入 0 與 1 都是無法分解的:依定義,1 沒有任何質因數,而此計算機會針對像 7 或 97 這樣的質數,標示出單一質數,並附上清楚的「這個數字是質數」指標。你可以信任畫面上顯示的分解結果,確實對應到你輸入的那個確切數字。
延伸閱讀:如何找出任意上限以內的所有質數。