請輸入 1 個想找因數的正整數。會一次算出因數一覽、因數個數、相乘的組合和質因數分解。
這個頁面可以做什麼
- 只要輸入 1 個正整數,就會由小到大列出它所有的因數(不遺漏、不重複)
- 同時也能知道相乘等於原數的「因數組合」和「因數個數」
- 也會顯示質因數分解(像 \(120 = 2 \times 2 \times 2 \times 3 \times 5\) 這樣的形式)和除法的計算過程
- 因數只有 1 和它本身這 2 個,就是質數——也能用來判斷是不是質數
- 找因數方法的淺顯解說,以及可直接複製到 Excel、Google 試算表、Python 的公式,也都整理在這個頁面
這個計算有什麼用?
要把 \(\frac{24}{36}\) 約分,就要找出分子 24 和分母 36 共同的因數來除(用最大公因數 12 去除,一次就得到 \(\frac{2}{3}\))。
能一下子想到因數,約分、通分、化簡比的計算都會變得又快又正確。許多在分數卡關的孩子,其實是卡在這個因數的感覺上。
120 個點心要平均分配、不留剩餘,能分的人數只有 120 的因數(1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 24, 30, 40, 60, 120)。
班上分組、贈品分裝、用品平均分配——「幾個人(幾袋)可以剛好分完」的所有候選,只要列出因數就全部知道了。
把 36 片磁磚不留剩餘地排成長方形,方法就是因數的組合——1×36、2×18、3×12、4×9、6×6 這 5 種。
地板或牆面的磁磚配置、賣場的商品陳列、典禮的座位安排等,「把固定個數排成長方形」的場合,因數組合就直接是排列方式的選項。
14 位數左右瞬間就能完成的質因數分解,遇到好幾百位數的巨大數,就算動用全世界的電腦,也無法在實際可行的時間內完成。網路上廣泛使用的 RSA 加密,就是以「大數的質因數分解實際上做不到」作為安全性的基礎。
在網購時傳送信用卡號碼,保護您資料的機制的根本,就是這個頁面的質因數分解。
互相咬合的 2 個齒輪,如果齒數有共同的因數,同樣的齒會一再碰到同一個對象,磨損和刮傷就容易集中在特定的齒上。所以機械設計常會選擇齒數之間除了 1 以外沒有其他公因數(互質)的組合。
從汽車的變速箱到手錶,「有沒有公因數」都是關係到產品壽命的設計要素。
公式
符號與用語解說
符號
| \(N\) | 想找因數的正整數。(例如:120) | |
| \(A,\ B\) | 相乘等於 \(N\) 的一組因數。(例如:\(120 = 4 \times 30\) 的 4 和 30) | |
| \(p,\ q,\ r\) | 出現在質因數分解中的質數(質因數)。(例如:\(120 = 2^3 \times 3 \times 5\) 的 2、3、5) | |
| \(a,\ b,\ c\) | 質因數分解中各個質數相乘的次數(指數)。因數個數的公式,是把它們各加 1 再相乘。(例如:\(120 = 2^3 \times 3 \times 5\) 時,2 相乘的次數 \(a = 3\),3 和 5 相乘的次數 \(b = c = 1\)) | |
| \(2^{3}\) | 2 的 3 次方 | 2 自乘 3 次的值(\(2 \times 2 \times 2 = 8\))。右上角的小數字(指數)表示相乘的次數。 |
| \(d(N)\) | \(N\) 的因數個數,d 取自英文 divisor(因數)的第一個字母。(例如:\(d(120) = 16\)) | |
| \(\sqrt{N}\) | 根號 N | 平方後等於 \(N\) 的數(平方根)。一組因數中一定有一個小於或等於 \(\sqrt{N}\),所以找因數只要查到這裡就夠了。 |
用語
| 因數 | 能整除某個整數(沒有餘數)的正整數。例如:30 的因數是 1, 2, 3, 5, 6, 10, 15, 30 這 8 個。不論什麼數,1 和它本身一定都是它的因數。 |
| 倍數 | 把某個整數乘以整數(1 倍、2 倍、3 倍……)所得的數。因數和倍數是一體兩面的關係,「4 是 120 的因數」和「120 是 4 的倍數」說的是同一件事。 |
| 質數 | 除了 1 和它本身以外,沒有其他因數的大於或等於 2 的整數。由小到大依序是 2, 3, 5, 7, 11, 13……無限多個。1 不算質數。 |
| 合數 | 不是質數、大於或等於 2 的整數。因數有 3 個以上,可以分解成質數相乘的形式。(1 既不是質數,也不是合數) |
| 質因數 | 能整除某個整數的質數。例如:120 的質因數是 2、3、5 這 3 種。 |
| 質因數分解 | 把整數寫成只有質數相乘的形式。例如:\(120 = 2 \times 2 \times 2 \times 3 \times 5\)。分解的方式(不計相乘的順序)只有一種。 |
| 約數 | 因數的另一種說法,中國大陸和日本的課本多用「約數」。台灣的國小、國中課本統一用「因數」(因數與倍數、最大公因數),這個頁面也統一寫成「因數」。英文是 divisor 或 factor。 |
| 完全平方數 | 同一個整數乘 2 次所得的數。例如:\(36 = 6 \times 6\)、\(3600 = 60 \times 60\)。完全平方數的因數個數一定是奇數(因為相同的兩個數那一組只算 1 次)。 |
| 次方 | 同一個數自乘好幾次的計算,也叫乘冪。像 \(2^3\) 這樣寫在右上角的小數字(指數)表示相乘的次數。 |
建議先了解的基礎知識
為了能「真正理解意義」地使用這個頁面的計算,這裡整理了建議事先了解的基礎知識。
| 九九乘法與除法(國小二~三年級,7~9 歲) |
|
| 因數與倍數(國小五年級,10~11 歲) |
|
| 質數與質因數分解(國小六年級~國中七年級,11~13 歲) |
|
| 次方與指數(國中七年級,12~13 歲) |
|
用 Excel 計算的方法
| 想找因數的數 N | 120 |
| 想確認是不是因數的數 A | 4 |
| N ÷ A 的餘數(0 就是因數) | =MOD(B1,B2) |
| 配成一組的另一個因數 B(餘數為 0 時) | =B1/B2 |
| 質因數 1 | 2 |
| 質因數 2 | 2 |
| 質因數 3 | 2 |
| 質因數 4 | 3 |
| 質因數 5 | 5 |
| 全部相乘的答案(回到原數就正確) | =PRODUCT(B1:B5) |
| 質數 p 相乘的次數 a | 3 |
| 質數 q 相乘的次數 b | 1 |
| 質數 r 相乘的次數 c | 1 |
| 因數個數 d(N) | =(B1+1)*(B2+1)*(B3+1) |
第 2 個表格是質因數分解的驗算。PRODUCT(B1:B5) 是把 B1 到 B5 全部相乘的函數,B6 顯示 120 就能確認分解正確(質因數少於 5 個的數,多出來的欄位請填 1)。
第 3 個表格是因數個數的公式,B4 會顯示 (3+1) × (1+1) × (1+1) = 16。
用 Google 試算表計算的方法
| 想找因數的數 N | 120 |
| 想確認是不是因數的數 A | 4 |
| N ÷ A 的餘數(0 就是因數) | =MOD(B1,B2) |
| 配成一組的另一個因數 B(餘數為 0 時) | =B1/B2 |
| 質因數 1 | 2 |
| 質因數 2 | 2 |
| 質因數 3 | 2 |
| 質因數 4 | 3 |
| 質因數 5 | 5 |
| 全部相乘的答案(回到原數就正確) | =PRODUCT(B1:B5) |
| 質數 p 相乘的次數 a | 3 |
| 質數 q 相乘的次數 b | 1 |
| 質數 r 相乘的次數 c | 1 |
| 因數個數 d(N) | =(B1+1)*(B2+1)*(B3+1) |
用 Python 計算的方法
n = 120 # 想找因數的正整數
divisors = [] # 因數一覽
pairs = [] # 相乘等於 n 的因數組合
i = 1
while i * i <= n: # 試除到 √n 為止,就能全部找到
if n % i == 0: # 餘數是 0,i 就是因數
divisors.append(i)
if i != n // i: # 配成一組的另一個也是因數(完全平方數 6×6 這種重複的不加)
divisors.append(n // i)
pairs.append((i, n // i))
i += 1
divisors.sort()
prime_factors = [] # 質因數分解(從小的質數開始,能除就一直除下去)
rest = n
p = 2
while p * p <= rest:
while rest % p == 0:
prime_factors.append(p)
rest = rest // p
p += 1
if rest > 1:
prime_factors.append(rest) # 最後剩下的數也是質因數
print(f"{n} 的因數({len(divisors)} 個):{divisors}")
print(f"因數組合:{pairs}")
if len(prime_factors) >= 2:
print(f"質因數分解:{n} = {' × '.join(map(str, prime_factors))}")
elif len(prime_factors) == 1:
print(f"{n} 是質數")
用 LaTeX 等數學式語言的寫法(可直接複製)
N = A × B
N = A \times B
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>N</mi>
<mo>=</mo>
<mi>A</mi>
<mo>×</mo>
<mi>B</mi>
</mrow>
</math>
N = A xx B
A*B
N := A*B;
N = A*B;
N = A × B
N = pᵃ × qᵇ × rᶜ × …
N = p^{a} \times q^{b} \times r^{c} \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>
<msup><mi>r</mi><mi>c</mi></msup>
<mo>×</mo>
<mo>⋯</mo>
</mrow>
</math>
N = p^a xx q^b xx r^c xx cdots
p^a*q^b*r^c
N := p^a*q^b*r^c;
N = p^a*q^b*r^c;
N = p^a × q^b × r^c × …
d(N) = (a + 1)(b + 1)(c + 1) …
d(N) = (a+1)(b+1)(c+1)\cdots
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>d</mi><mo>(</mo><mi>N</mi><mo>)</mo>
<mo>=</mo>
<mo>(</mo><mi>a</mi><mo>+</mo><mn>1</mn><mo>)</mo>
<mo>(</mo><mi>b</mi><mo>+</mo><mn>1</mn><mo>)</mo>
<mo>(</mo><mi>c</mi><mo>+</mo><mn>1</mn><mo>)</mo>
<mo>⋯</mo>
</mrow>
</math>
d(N) = (a+1)(b+1)(c+1) cdots
(a + 1)*(b + 1)*(c + 1)
d := (a + 1)*(b + 1)*(c + 1);
d = (a + 1)*(b + 1)*(c + 1);
d(N) = (a+1)(b+1)(c+1)…
請 ChatGPT 幫忙計算的方法
你是整數計算助理。請務必實際執行 Python 程式碼來進行下面的計算,並只以執行結果的數值作為回答的依據(不要用心算或推測回答)。 關於 120,請分別求出下列的值: 1. 由小到大列出所有因數,並數出個數 2. 列出所有相乘等於 120 的因數組合 3. 做質因數分解(寫成 2 × 2 × 2 × 3 × 5 的形式) 4. 用因數個數的公式(把各個質數相乘的次數加 1 後相乘)驗算,確認和第 1 題的個數一致 請列出計算所用的程式碼和執行結果。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
不需專業知識,操作直覺又簡單
無須登錄任何個人資料
按下「下載」後自動刪除檔案
無須標註來源出處
亦無須事先取得商用授權