透過 MCP 連接 →

輸入計算

請輸入一個整數,以計算其因數與質因數。

數學公式

廣告

結果

30 has 8 factors

  1. 因數:
    1, 2, 3, 5, 6, 10, 15, 30
  2. 質因數:
    30 = 2 × 3 × 5

因數計算機能做什麼

這款因數計算機只需輸入一個整數,就會立刻回傳兩項結果:該數字的所有因數(除數),以及它的質因數分解。所謂因數,是指任何能整除這個數字、且沒有餘數的整數;而質因數則是相乘後能還原出原始數字的質數「基本積木」。無論是寫作業、約分分數、尋找最大公因數,還是探索數字的各種性質,這都是相當實用的小工具。

數字 12 拆分為約數對,排列成由點組成的矩形
12 的因數以相乘等於該數的約數對形式呈現。

使用方法

畫面上只有一個輸入欄位,標示為 「求下列數字的因數:」。只要輸入任意整數(正數或負數),其餘工作交給計算機即可。本工具以絕對值進行運算,因此回傳的因數一律為正數。可支援的範圍為任何小於 2,147,483,647 的整數;達到或超過這個上限的數值將無法處理。

  • 0 屬於特例,會直接回傳 0。
  • 負數會取其絕對值(例如 -12 與 12 的因數完全相同)。

背後的運算原理

計算機並不會逐一檢查到輸入值為止的每個數字,而是只從 1 迴圈計算到該數字的平方根。每當找到一個能整除的值 i,就同時記錄 i 與其對應的商(數字 ÷ i)。這種「平方根法」會成對找出因數,對於較大的數字而言速度快上許多。結果會去除重複值,並由小到大排序。至於質因數分解,則採用成熟的質數運算程式(Apache Commons Math)將絕對值拆解為各個質數成分。

$$\text{Factors} = \left\{\, d \in \mathbb{Z}^{+} : \left|\text{Number}\right| \bmod d = 0 \,\right\}$$

Advertisement
餘數為零的除法,標示 d 為因數
當一個數除以正整數 \(d\) 餘數為 0 時,\(d\) 就是它的因數。

範例演算

輸入 36。迴圈會從 1 跑到 7(剛好超過 \(\sqrt{36} = 6\)):

  • 1 可整除 36 → 記錄 1 與 36
  • 2 可整除 36 → 記錄 2 與 18
  • 3 可整除 36 → 記錄 3 與 12
  • 4 可整除 36 → 記錄 4 與 9
  • 6 可整除 36 → 記錄 6(其配對也是 6,因此只記錄一次)

排序後的 因數 為:1、2、3、4、6、9、12、18、36。質因數 則為:2、2、3、3(因為 \(2 \times 2 \times 3 \times 3 = 36\))。

Advertisement

常見問題

因數與質因數有什麼差別?因數是所有能整除你輸入數字的數;質因數則只包含相乘後能組成該數字的質數。以 36 為例,因數中包含像 12、18 這類合數,但質因數就只有 2、2、3、3。

為什麼負數會得到正的因數?因為計算機是以絕對值運算,所以 -12 與 12 會產生相同的正除數清單。

數字大小有上限嗎?有的。數值必須小於 2,147,483,647(同時大於其負值)。達到或超過此上限的數值不會回傳任何結果。

相關計算機

最後更新: