請用逗號(,)隔開,輸入 2 個以上要求最大公因數的整數。3 個以上也能一起算,並顯示每個數的質因數分解和共同的質因數。
這個頁面可以做什麼
- 只要用逗號隔開輸入整數,馬上就能知道最大公因數(英文稱為 GCD、GCF)
- 不只 2 個,像「16, 88, 104」這樣 3 個以上整數的最大公因數也能一起算
- 會一起顯示每個整數的質因數分解和共同的質因數,連答案的求法和驗算方法都學得到
- 淺顯易懂的公式解說,以及可直接複製到 Excel、Google 試算表、Python 的公式,也都整理在這個頁面
這個計算有什麼用?
把 \(\frac{12}{18}\) 約分時,分子和分母同時除以最大公因數 6,一次就能化簡成 \(\frac{2}{3}\)。
不用先除以 2、再除以 3……用小的數除好幾次,用最大公因數一次就能化成最簡單的形式(最簡分數)。從國小數學到大人的工作,這是最大公因數最常派上用場的用法。
想把 24 個點心和 36 瓶果汁,不留剩餘地平均分成盡量多的袋子,每袋內容都一樣——最多可以分成 \(\gcd(24, 36) = 12\) 袋(每袋 2 個點心和 3 瓶果汁)。
學校活動或聚會分贈品、配備品組合等,「把不同種類的東西平均分成一樣的組」時的經典計算。
想用正方形磁磚把長 330 cm × 寬 450 cm 的地板鋪滿、不留縫隙也不用切磚時,能用的最大磁磚是 \(\gcd(330, 450) = 30\)(30 cm 見方)。
用最大的正方形分割長方形,這個計算會用在地板或牆面的施工,以及從大張紙上不浪費地裁出同樣大小的卡片等時候。
互相咬合的兩個齒輪,齒數的最大公因數如果很大,同樣的齒會一再碰撞,容易磨損不均。所以機械設計的基本原則,是讓齒數盡量接近互質(最大公因數是 1)。
汽車和鐘錶裡的齒輪齒數,也運用了這種「讓最大公因數變小」的巧思。
網路購物和網路銀行使用的 RSA 加密,在產生金鑰的過程中,需要判斷「兩個數是否互質」,這時就會用到輾轉相除法。
誕生於西元前的最大公因數求法,在 2000 多年後的今天,仍守護著全世界的通訊安全——這個應用讓人體會到數學的生命力有多長久。
公式
符號與用語解說
符號
| \(\gcd(a, b)\) | gcd | 表示 \(a\) 和 \(b\) 的最大公因數的符號,取自英文 greatest common divisor(GCD)的字首。英語國家也稱為 greatest common factor(GCF),寫成 \(\mathrm{GCF}(a, b)\),意思完全相同。台灣的課本常寫成 \((a, b)\)。 |
| \(a \bmod b\) | a mod b | \(a\) 除以 \(b\) 的餘數。(例:\(48 \bmod 18 = 12\),因為 48 ÷ 18 = 2…12) |
| \(\mathrm{lcm}(a, b)\) | lcm | 表示 \(a\) 和 \(b\) 的最小公倍數的符號,取自英文 least common multiple 的字首。台灣的課本常寫成 \([a, b]\)。(例:\(\mathrm{lcm}(12, 18) = 36\)) |
| \(p_1, p_2, \ldots\) | p 1、p 2、… | 依序排列的共同質因數。右下的小數字(下標)只表示「第 1 個、第 2 個……」的順序,不用在計算中。 |
| \(\cdots\) | 刪節號 | 表示「照同樣的規則繼續下去」的省略符號。這裡的意思是不管有幾個質因數,都同樣相乘。 |
用語
| 因數 | 能整除某個整數的正整數。12 的因數是 1, 2, 3, 4, 6, 12,共 6 個。 |
| 公因數 | 2 個以上的整數共同的因數。12 和 18 的公因數是 1, 2, 3, 6。公因數一定是最大公因數(這個例子是 6)的因數。 |
| 最大公因數 | 公因數中最大的一個。台灣的學校用這個名稱,英文稱為 GCD(greatest common divisor)或 GCF(greatest common factor)。 |
| 質數 | 除了 1 和自己以外沒有其他因數、2 以上的整數,依序是 2, 3, 5, 7, 11, 13,…。1 不是質數。 |
| 質因數分解 | 把整數寫成只有質數相乘的形式。(例:\(12 = 2 \times 2 \times 3\))分解時用到的每一個質數稱為質因數。 |
| 互質 | 兩個整數的最大公因數是 1(公因數只有 1)。像 17 和 13 這樣,沒有任何共同質因數的關係。 |
| 輾轉相除法 | 重複「用大的數除以小的數,把這組數換成『小的數和餘數』」來求最大公因數的方法,又稱 Euclid 演算法。從西元前就為人所知,被譽為「世界上最古老的演算法」。 |
| 最小公倍數 | 2 個以上的整數共同的倍數中最小的正整數,分數通分時會用到。兩個數之間有 \(\gcd(a, b) \times \mathrm{lcm}(a, b) = a \times b\) 的關係。 |
| 短除法 | 台灣課本求最大公因數的常用方法。把幾個數並排,用它們共同的質數依序往下除,直到沒有共同的質因數為止,左邊的除數全部相乘就是最大公因數。 |
建議先了解的基礎知識
為了能「理解意思」地使用這個頁面的計算,這裡整理了建議先了解的基礎知識。
卡住的時候,回到這裡的內容複習是最快的方法。
| 九九乘法、有餘數的除法(國小二~三年級,7~9 歲) |
|
| 因數與公因數(國小五年級,10~11 歲) |
|
| 分數的約分(國小五年級,10~11 歲) |
|
| 質數與質因數分解(國小六年級,11~12 歲。國中七年級再深入) |
|
用 Excel 計算的方法
| 第 1 個整數 a | 12 |
| 第 2 個整數 b | 18 |
| 最大公因數 gcd(a, b) | =GCD(B1,B2) |
| 整數 1 | 16 |
| 整數 2 | 88 |
| 整數 3 | 104 |
| 最大公因數 | =GCD(B1:B3) |
| 較大的數 a | 48 |
| 較小的數 b | 18 |
| a 除以 b 的餘數(a mod b) | =MOD(B1,B2) |
| gcd(a, b) | =GCD(B1,B2) |
| gcd(b, 餘數)(和上面一致) | =GCD(B2,B3) |
| 第 1 個整數 a | 12 |
| 第 2 個整數 b | 18 |
| 最大公因數 gcd(a, b) | =GCD(B1,B2) |
| 最小公倍數 lcm(a, b) | =LCM(B1,B2) |
| gcd × lcm | =B3*B4 |
| a × b(和上面一致) | =B1*B2 |
像第 2 個表這樣用「=GCD(B1:B3)」指定範圍,3 個以上的數也能一起算(B4 會顯示 8)。
第 3 個表用來驗證輾轉相除法,用 MOD 函數(求餘數)可以確認 gcd(a, b) 和 gcd(b,餘數)是同樣的值(都是 6)。
第 4 個表中,gcd × lcm 和 a × b 都是 216,可以確認和最小公倍數的關係式。只要把輸入欄的數值改成您自己的整數,就能直接使用。
用 Google 試算表計算的方法
| 第 1 個整數 a | 12 |
| 第 2 個整數 b | 18 |
| 最大公因數 gcd(a, b) | =GCD(B1,B2) |
| 整數 1 | 16 |
| 整數 2 | 88 |
| 整數 3 | 104 |
| 最大公因數 | =GCD(B1:B3) |
| 較大的數 a | 48 |
| 較小的數 b | 18 |
| a 除以 b 的餘數(a mod b) | =MOD(B1,B2) |
| gcd(a, b) | =GCD(B1,B2) |
| gcd(b, 餘數)(和上面一致) | =GCD(B2,B3) |
| 第 1 個整數 a | 12 |
| 第 2 個整數 b | 18 |
| 最大公因數 gcd(a, b) | =GCD(B1,B2) |
| 最小公倍數 lcm(a, b) | =LCM(B1,B2) |
| gcd × lcm | =B3*B4 |
| a × b(和上面一致) | =B1*B2 |
把表格整個複製,貼到 A1 儲存格,再把輸入欄的數值改成您自己的整數。
用 Python 計算的方法
from math import gcd
from functools import reduce
numbers = [330, 75, 450, 225] # 要求最大公因數的整數串列(幾個都可以)
greatest_common_divisor = reduce(gcd, numbers) # 從開頭每次 2 個依序計算 gcd
print(f"{numbers} 的最大公因數: {greatest_common_divisor}")
用 LaTeX 等數學式語言的寫法(可直接複製)
gcd(a, b) = p₁ × p₂ × ⋯
\gcd(a, b) = p_1 \times p_2 \times \cdots
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>gcd</mi>
<mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo>
<mo>=</mo>
<msub><mi>p</mi><mn>1</mn></msub>
<mo>×</mo>
<msub><mi>p</mi><mn>2</mn></msub>
<mo>×</mo>
<mo>⋯</mo>
</mrow>
</math>
gcd(a, b) = p_1 xx p_2 xx cdots
GCD[a, b]
igcd(a, b);
g = gcd(a, b);
gcd(a, b) = p_1 × p_2 × ⋯
gcd(a, b) = gcd(b, a mod b)
\gcd(a, b) = \gcd(b,\ a \bmod b)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>gcd</mi>
<mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo>
<mo>=</mo>
<mi>gcd</mi>
<mo>(</mo><mi>b</mi><mo>,</mo>
<mi>a</mi><mspace width="0.3em"/><mi>mod</mi><mspace width="0.3em"/><mi>b</mi>
<mo>)</mo>
</mrow>
</math>
gcd(a, b) = gcd(b, a mod b)
GCD[a, b] == GCD[b, Mod[a, b]]
igcd(a, b) = igcd(b, a mod b);
gcd(a, b) == gcd(b, mod(a, b))
gcd(a, b) = gcd(b, a mod b)
gcd(a, b, c) = gcd(gcd(a, b), c)
\gcd(a, b, c) = \gcd(\gcd(a, b),\ c)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>gcd</mi>
<mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo>)</mo>
<mo>=</mo>
<mi>gcd</mi>
<mo>(</mo>
<mi>gcd</mi>
<mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo>
<mo>,</mo><mi>c</mi>
<mo>)</mo>
</mrow>
</math>
gcd(a, b, c) = gcd(gcd(a, b), c)
GCD[a, b, c]
igcd(igcd(a, b), c);
g = gcd(gcd(a, b), c);
gcd(a, b, c) = gcd(gcd(a, b), c)
gcd(a, b) × lcm(a, b) = a × b
\gcd(a, b) \times \mathrm{lcm}(a, b) = a \times b
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>gcd</mi>
<mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo>
<mo>×</mo>
<mi>lcm</mi>
<mo>(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>)</mo>
<mo>=</mo>
<mi>a</mi>
<mo>×</mo>
<mi>b</mi>
</mrow>
</math>
gcd(a, b) xx lcm(a, b) = a xx b
GCD[a, b]*LCM[a, b] == a*b
igcd(a, b)*ilcm(a, b) = a*b;
gcd(a, b)*lcm(a, b) == a*b
gcd(a, b) × lcm(a, b) = a × b
請 ChatGPT 幫忙計算的方法
你是整數計算的助理。請務必實際執行 Python 程式碼來進行下面的計算,並只以執行結果的數值作為回答的根據(不要用心算或推測回答)。 對於 330, 75, 450, 225 這 4 個整數,請分別求出: 1. 4 個整數的最大公因數 2. 每個整數的質因數分解 3. 4 個整數共同的質因數 請列出計算用的公式,以及執行結果的數值。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
不需專業知識,操作直覺又簡單
無須登錄任何個人資料
按下「下載」後自動刪除檔案
無須標註來源出處
亦無須事先取得商用授權