請輸入要做質因數分解的整數。會一次顯示乘法形式、標準分解式、短除法的過程和正因數的個數。
這個頁面可以做什麼
- 只要輸入 2 以上的整數,馬上就能以「\(2 \times 2 \times 5 \times 5\)」這樣的乘法形式知道質因數分解的結果
- 也會顯示國中學的標準分解式(\(2^{2} \times 5^{2}\)),以及短除法的過程
- 作為質因數分解的應用,也會一起算出正因數的個數
- 輸入質數(不能再分解的數)時會判斷「是質數」,也能用來檢查是不是質數
- 淺顯易懂的公式解說,以及可直接複製到 Excel、Google 試算表、Python 的公式,也都整理在這個頁面
這個計算有什麼用?
像 \(\frac{84}{126}\) 這樣大的分數,做質因數分解就能按部就班地約分。\(84 = 2^{2} \times 3 \times 7\)、\(126 = 2 \times 3^{2} \times 7\),共同的部分 \(2 \times 3 \times 7 = 42\) 就是最大公因數。分子分母同時除以 42,就是 \(\frac{2}{3}\)。
約分、通分、最小公倍數的計算都以質因數分解為基礎,所有用到分數的計算都會變得更清楚。
保護信用卡號碼等資料的 RSA 加密,安全性的根據是「大數的質因數分解,連電腦都要花上極長的時間」。實際上,232 位數(RSA-768)的質因數分解,動用了數百台電腦,花了大約 2 年。
100 兆(15 位數)左右的數,電腦一瞬間就能分解,但位數一增加,難度就爆炸性地增加——這種不對稱,支撐著網路的安全。
12 齒和 18 齒的齒輪咬合後回到最初的相對位置,是在轉過 \(12 = 2^{2} \times 3\) 和 \(18 = 2 \times 3^{2}\) 的最小公倍數 36 齒時(小齒輪轉 3 圈、大齒輪轉 2 圈)。
質因數分解是確實求出最小公倍數的工具,用在讓齒輪磨損平均的設計,以及計算多個週期何時一致等地方。
把 36 位參加者分成人數相同的小組,有幾種分法?由 \(36 = 2^{2} \times 3^{2}\) 可知正因數的個數是 \((2+1) \times (2+1) = 9\) 個,所以從「每組 1 人 × 36 組」到「每組 36 人 × 1 組」共 9 種。
分組、鋪磁磚、商品裝箱等「想要剛好整除」的時候,不用一一列出就能算出有幾種選擇。
北美有每 13 年或 17 年才大量同時出現的蟬(週期蟬,又稱質數蟬)。週期是質數的話,就不容易和其他週期重疊,例如 13 年蟬和 12 年週期的天敵同時出現,要最小公倍數 156 年才會碰到 1 次。
「週期是質數有利於生存」被認為是很有力的假說。用質因數分解計算「不容易重疊的程度」,就能自己驗證這個機制。
公式
符號與用語解說
符號
| \(n\) | n | 要做質因數分解的原本的整數(2 以上)。(例:100) |
| \(p, q\) | p、q | 質因數(能整除 \(n\) 的質數),由小到大排列。(例:100 的質因數是 2 和 5) |
| \(p^{a}\) | p 的 a 次方 | 質因數 \(p\) 連乘 \(a\) 次的值。右上的小 \(a\) 是表示「乘 \(a\) 次」的指數。(例:\(2^{2} = 2 \times 2 = 4\)) |
| \(d\) | d | 正因數的個數,取自英文 divisor(因數)的字首。(例:100 的 \(d = 9\)) |
用語
| 質數 | 除了 1 和自己以外沒有其他因數、2 以上的整數,依序是 2, 3, 5, 7, 11, 13,…。1 不是質數。另外,2 是唯一的偶數質數。 |
| 合數 | 不是質數的、2 以上的整數。換句話說,就是能用 2 個以上的質數相乘做出來的數(例:100 = 2 × 2 × 5 × 5)。 |
| 質因數 | 能整除某個整數的質數。100 的質因數是 2 和 5。 |
| 質因數分解 | 把整數分解成只有質數相乘的形式。不計乘法的順序,分解結果只有唯一一種。 |
| 因數 | 能整除某個數的整數。12 的正因數是 1, 2, 3, 4, 6, 12,共 6 個。 |
| 指數 | 寫在右上角、表示「乘幾次」的小數字。\(2^{3}\) 的意思是 2 連乘 3 次(\(2 \times 2 \times 2 = 8\))。 |
| 標準分解式 | 把質因數分解的結果,依質因數由小到大排列,相同的質因數用指數合起來寫的形式。例:\(360 = 2^{3} \times 3^{2} \times 5\)。 |
| 算術基本定理 | 2 以上的任何整數,都只能用唯一一種方式表示成質數的乘積的定理。這是質因數分解的答案只有一個的根據。 |
| 短除法 | 用小的質數一個接一個往下除的直式寫法。左邊寫除數(質數),下面寫商,商變成質數就結束。把左邊的質數和最後的商全部相乘,就回到原本的數。 |
| 試除法 | 從 2, 3, 5,…小的質數開始,依序試「能不能整除」的質因數分解方法。試到 \(\sqrt{n}\) 都除不盡的話,剩下的數就可以判斷是質數。 |
建議先了解的基礎知識
為了能「理解意思」地使用這個頁面的計算,這裡整理了建議先了解的基礎知識。
卡住的時候,回到這裡的內容複習是最快的方法。
| 九九乘法(國小二年級,7~8 歲)、除法(國小三年級,8~9 歲) |
|
| 偶數、奇數,因數與倍數(國小五年級,10~11 歲) |
|
| 質數與質因數分解(國小六年級,11~12 歲。國中七年級再學標準分解式) |
|
| 次方、指數(國中七年級,12~13 歲) |
|
用 Excel 計算的方法
| 質因數 1 | 2 |
| 質因數 2 | 2 |
| 質因數 3 | 5 |
| 質因數 4 | 5 |
| 原本的整數 n | =B1*B2*B3*B4 |
| 質因數 p | 2 |
| p 的指數 a | 2 |
| 質因數 q | 5 |
| q 的指數 b | 2 |
| 原本的整數 n | =B1^B2*B3^B4 |
| p 的指數 a | 2 |
| q 的指數 b | 2 |
| 正因數的個數 d | =(B1+1)*(B2+1) |
第 1 個表確認質因數全部相乘會回到原本的數,B5 會顯示 2 × 2 × 5 × 5 = 100。
第 2 個表由標準分解式(2² × 5²)計算,「^」是次方(乘幾次)的符號,B5 會顯示 100。
第 3 個表是正因數的個數,B3 會顯示 (2+1) × (2+1) = 9。只要把質因數或指數的數值改成您自己的結果就能使用。
用 Google 試算表計算的方法
| 質因數 1 | 2 |
| 質因數 2 | 2 |
| 質因數 3 | 5 |
| 質因數 4 | 5 |
| 原本的整數 n | =B1*B2*B3*B4 |
| 質因數 p | 2 |
| p 的指數 a | 2 |
| 質因數 q | 5 |
| q 的指數 b | 2 |
| 原本的整數 n | =B1^B2*B3^B4 |
| p 的指數 a | 2 |
| q 的指數 b | 2 |
| 正因數的個數 d | =(B1+1)*(B2+1) |
用 Python 計算的方法
number = 100 # 要做質因數分解的整數(2 以上)
prime_factors = [] # 由小到大放入質因數的串列
remaining = number
divisor = 2
while divisor * divisor <= remaining:
while remaining % divisor == 0: # 能整除時就繼續用同一個數除
prime_factors.append(divisor)
remaining //= divisor
divisor += 1
if remaining > 1: # 最後剩下的大於 1 的數是質數
prime_factors.append(remaining)
print(f"{number} 的質因數: {prime_factors}")
用 LaTeX 等數學式語言的寫法(可直接複製)
n = p₁ × p₂ × ⋯ × pₖ
n = p_1 \times p_2 \times \cdots \times p_k
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>n</mi>
<mo>=</mo>
<msub><mi>p</mi><mn>1</mn></msub>
<mo>×</mo>
<msub><mi>p</mi><mn>2</mn></msub>
<mo>×</mo>
<mo>⋯</mo>
<mo>×</mo>
<msub><mi>p</mi><mi>k</mi></msub>
</mrow>
</math>
n = p_1 xx p_2 xx cdots xx p_k
FactorInteger[n]
ifactor(n);
factor(n)
n = p_1 × p_2 × ⋯ × p_k
n = pᵃ × qᵇ × ⋯
n = p^{a} \times q^{b} \times \cdots
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>n</mi>
<mo>=</mo>
<msup><mi>p</mi><mi>a</mi></msup>
<mo>×</mo>
<msup><mi>q</mi><mi>b</mi></msup>
<mo>×</mo>
<mo>⋯</mo>
</mrow>
</math>
n = p^a xx q^b xx cdots
p^a * q^b
n := p^a * q^b;
n = p^a * q^b;
n = p^a × q^b × ⋯
d = (a + 1) × (b + 1)
d = (a+1) \times (b+1)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>d</mi>
<mo>=</mo>
<mo>(</mo><mi>a</mi><mo>+</mo><mn>1</mn><mo>)</mo>
<mo>×</mo>
<mo>(</mo><mi>b</mi><mo>+</mo><mn>1</mn><mo>)</mo>
</mrow>
</math>
d = (a + 1) xx (b + 1)
(a + 1)*(b + 1)
d := (a + 1)*(b + 1);
d = (a + 1)*(b + 1);
d = (a + 1) × (b + 1)
請 ChatGPT 幫忙計算的方法
你是整數計算的助理。請務必實際執行 Python 程式碼來進行下面的計算,並只以執行結果的數值作為回答的根據(不要用心算或推測回答)。 請把 360 做質因數分解。 1. 由小到大列出所有質因數(相同的質因數依個數重複寫出) 2. 寫成使用指數的標準分解式(例:2^3 × 3^2 × 5 這樣的形式) 3. 也請求出 360 的正因數個數 請列出計算用的程式碼,以及執行結果的數值。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
不需專業知識,操作直覺又簡單
無須登錄任何個人資料
按下「下載」後自動刪除檔案
無須標註來源出處
亦無須事先取得商用授權