🟢 Tier B・延伸組合技巧

數學規則:因數、倍數、質數與GCD

M1-09 數學規則:因數倍數質數 M1-10 數學規則進階:GCD與應用

1什麼是這個單元的數學規則

這個單元不是要你重新學數學,而是要你把國中數學課學過的「因數、倍數、質數、最大公因數」這些概念,翻譯成電腦看得懂的判斷步驟。你腦中可能已經知道「12的因數有1、2、3、4、6、12」,但電腦不會「一眼看出來」,它只能靠逐一嘗試、逐一判斷——這個單元教的正是「怎麼用迴圈跟條件判斷,把數學上的定義轉換成程式邏輯」。這也是你在程式設計裡第一次體會到:數學上一個簡單的定義(例如「質數」),寫成程式可能需要一個完整的迴圈跟判斷邏輯,不是一行就能算出來的。

1
2
3
4
5
6
用迴圈從 1 逐一嘗試到 12,檢查「12 除以這個數字餘數是否為 0」
🆕 補充圖解:電腦找因數不是「一眼看出」,是老老實實一個一個試新增

2核心概念,依課程題目的順序拆解

1

倍數判斷——用餘數為0來判斷

你要做的事:判斷A是否為B的倍數。做法:如果A除以B的餘數是0,A就是B的倍數。這是這整個單元最基礎的判斷式,之後找因數、判斷質數都會重複用到「餘數是不是0」這個檢查。

倍數判斷(MATH01-001)

2

因數個數/找所有因數——從1試到N,逐一檢查

你要做的事:計算N有幾個正因數,或是把N所有的因數都列出來。做法:用迴圈從1一直嘗試到N,每一個數字都檢查「N除以這個數字的餘數是不是0」——是的話這個數字就是N的因數,計數器+1(或把它加進結果清單)。

因數個數(MATH01-002)找所有因數(A-09-1)

⚠️ 常見誤區
忘記1和N自己本身也算是因數(很多人會漏算這兩個邊界值)。
3

質數判斷——因數個數剛好只有兩個

你要做的事:判斷N是否為質數(質數是大於1,且只有1和自己兩個正因數的數)。這一題直接建立在概念2之上:質數的定義本身就是用「因數個數」來描述的——如果你已經會算因數個數,質數判斷只是多加一個條件:因數個數剛好等於2。

質數判斷(MATH01-003)判斷質數(A-09-0)

⚠️ 常見誤區
忘記處理N=1的特殊情況——1只有一個因數(自己),不符合「兩個因數」的定義,所以1不是質數,但很多人直覺會誤判1是質數。
4

最大公因數(GCD)——兩個數共同擁有的因數中最大的

你要做的事:找出兩個正整數A、B的最大公因數。做法延續概念2的「逐一嘗試」精神:用迴圈嘗試每一個可能的數字,檢查它同時是A的因數、也是B的因數,過程中記錄找到的最大值。

最大公因數(MATH01-004)二個數的最大公因數(A-13-0)

5

最小公倍數(LCM)——用最大公因數推算出來

你要做的事:找出兩個正整數A、B的最小公倍數。這一題有個好用的數學關係:A和B的最小公倍數 = (A × B) ÷ 最大公因數。也就是說,只要你先用概念4算出GCD,LCM可以直接用一個公式算出來,不需要另外再用一次迴圈逐一嘗試。

最小公倍數(MATH01-005)

⚠️ 常見誤區
不知道GCD和LCM之間有這層關係,重新寫一次跟概念4完全獨立的邏輯——善用已經算出來的結果,是這一題真正想教你的事。
6

把兩個數的GCD延伸到一整串數字

你要做的事:給定一整組整數,計算這些數字全部的最大公因數(不只兩個)。做法:先算出前兩個數字的GCD,再拿這個結果跟第三個數字算GCD,再拿新結果跟第四個數字算GCD……依序把整串數字「一個一個併進來」,這是概念4的技巧重複套用在一整份清單上,也是你在M0-04學過的「累加器」精神的變形——只是這裡「累積」的不是總和,而是持續更新的GCD。

數列的最大公因數(A-13-1)

7

質數和——把質數判斷套進累加器

你要做的事:算出某個範圍內所有質數的總和。做法是把概念3(質數判斷)當作條件,套進你在M0-04學過的累加器:走訪範圍內的每一個數字,判斷是不是質數,是的話就加進總和。

質數和(TYTN-03)

8

拆解數字本身的每一位數——新技巧:用÷10和%10取出每一位

你要做的事:
  • 「位數和」(MATH01-006):計算一個數字每一位數字的總和
  • 「數字反轉」(MATH01-007):把數字的順序反轉輸出
1234
%10 得 4
→
123
÷10(取整數商)
→
123
%10 得 3
→
…重複…
🆕 補充圖解:重複「取餘數、去尾數」直到數字變成0,就能把每一位數字依序拆解出來新增

這是這個單元跟前面完全不一樣的新技巧——之前處理清單或字串時,你是靠索引位置存取每一個元素;但一個整數本身沒有「索引」可以存取,要靠數學運算(除法和餘數)才能把它拆開來看。

9

條件計數的複習——可被3整除的數量

「可被3整除的數量」(MATH01-008)是概念1(倍數判斷)結合M1-03學過的「條件計數」——走訪一整份清單,統計有幾個數字符合倍數條件。
10

進階挑戰——費氏階梯

「校園密室逃脫-費氏階梯(6-2)」(cyjunior-007)把數論延伸到費氏數列(每一項是前兩項的總和)——這其實已經預告了你之後在M3-04「動態規劃」會學到的「答案由前面幾步的答案組合出來」的思考方式,值得在正式學到DP之前先玩玩看這一題培養直覺。

3建議練習順序對照表

順序概念題目課程
1倍數判斷倍數判斷(MATH01-001)M1-09
2因數個數/列出因數因數個數/找所有因數M1-09、M1-10
3質數判斷質數判斷/判斷質數M1-09、M1-10
4最大公因數最大公因數/二個數的最大公因數M1-09、M1-10
5最小公倍數最小公倍數(MATH01-005)M1-09
6多個數的GCD數列的最大公因數(A-13-1)M1-10
7質數+累加質數和(TYTN-03)M1-10
8拆解每一位數字位數和/數字反轉M1-09
9條件計數複習可被3整除的數量(MATH01-008)M1-09
10進階挑戰校園密室逃脫-費氏階梯(6-2)M1-10
🆕 本頁新增內容說明
以下視覺元素為 Cowork 潤飾時新增,MD 正本中沒有:① 逐一嘗試找因數的格子圖 ② 「÷10、%10拆解每一位數」流程圖。若確認保留,建議之後補進 MD 正本。