什麼是因數對?
一個數 N 的因數對,是指兩個相乘後等於 N 的整數所組成的一組。舉例來說,12 的因數對有 (1 × 12)、(2 × 6) 和 (3 × 4)。每個正整數至少都有一組因數對,也就是 (1 × N)。把所有因數對找齊,就能完整看出這個數的因數結構——這在約分、因式分解,以及分辨質數與合數時都非常實用。
如何使用這個計算器
在「數字 (N)」欄位輸入任一正整數後送出,計算器就會回傳所有不重複的因數對、因數對的總數,以及因數總數。質數只會得到一組因數對 \((1 \times \text{N})\);完全平方數則會出現兩個因數相同的一組,例如 36 的 \((6 \times 6)\)。
公式說明
我們要找出所有滿足 \(a \times b = \text{N}\) 的 (a, b) 組合。與其逐一檢查到 N 為止的每個數,我們只需測試從 1 到 N 平方根之間的候選數即可。只要某個 a 能整除 N,它的配對 \(b = \text{N}/a\) 自然也是一個因數,因此一次就能抓出整組因數對。這也是為什麼這套搜尋的時間複雜度只有 \(O(\sqrt{\text{N}})\),即使面對很大的數字依然飛快。
$$\{(a,\,b)\ :\ a \times b = \text{N},\ \ 1 \le a \le \sqrt{\text{N}}\}$$
實例演算
以 N = 36 為例,平方根是 6。逐一測試 a = 1、2、3、4、6(也就是 6 以內的因數):\(36 \div 1 = 36\)、\(36 \div 2 = 18\)、\(36 \div 3 = 12\)、\(36 \div 4 = 9\)、\(36 \div 6 = 6\)。於是得到 \((1 \times 36)\)、\((2 \times 18)\)、\((3 \times 12)\)、\((4 \times 9)\) 和 \((6 \times 6)\) 共 5 組因數對,因數總數則為 9。
常見問題
如果我輸入質數會怎樣?你只會得到一組因數對 \((1 \times \text{N})\),這正好印證了這個數是質數。
為什麼完全平方數的因數對數會不一樣?完全平方數會出現像 \((6 \times 6)\) 這樣兩個因數相同的一組,所以只算成一組因數對;而因數 6 在計算因數總數時也只會被算一次。
這會包含負因數嗎?不會——這個計算器只列出正因數對,這也是一般通用的慣例。