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
%10 得 4
→
123
÷10(取整數商)
÷10(取整數商)
→
123
%10 得 3
%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 正本。