3.2 枚舉法
枚舉法(也稱為窮舉法)是把討論的對象分成若干種情況(分類),然后對各種情況逐一討論,最終解決整個問題。
運用枚舉法有時要進行恰當的分類,分類的原則是不重不漏。正確的分類有助于暴露問題的本質,降低問題的難度。數論中最常用的分類方法有按模的余數分類,按奇偶性分類及按數值的大小分類等。
例6 求這樣的三位數,它除以11所得的余數等于它的三個數字的平方和。
分析與解:三位數只有900個,可用枚舉法解決,枚舉時可先估計有關量的范圍,以縮小討論范圍,減少計算量。
設這個三位數的百位、十位、個位的數字分別為x,y,z。由于任何數除以11所得余數都不大于10,所以
x2+y2+z2≤10,
從而1≤x≤3,0≤y≤3,0≤z≤3。所求三位數必在以下數中:
100,101,102,103,110,111,112,
120,121,122,130,200,201,202,
211,212,220,221,300,301,310。
不難驗證只有100,101兩個數符合要求。
例7 將自然數N接寫在任意一個自然數的右面(例如,將2接寫在35的右面得352),如果得到的新數都能被N整除,那么N稱為魔術數。問:小于2000的自然數中有多少個魔術數?
對N為一位數、兩位數、三位數、四位數分別討論。
N|100,所以N=10,20,25,50;
N|1000,所以N=100,125,200,250,500;
(4)當N為四位數時,同理可得N=1000,1250,2000,2500,5000。符合條件的有1000,1250。
綜上所述,魔術數的個數為14個。
說明:(1)我們可以證明:k位魔術數一定是10k的約數,反之亦然。
(2)這里將問題分成幾種情況去討論,對每一種情況都增加了一個前提條件,從而降低了問題的難度,使問題容易解決。
例8 有3張撲克牌,牌面數字都在10以內。把這3張牌洗好后,分別發給小明、小亮、小光3人。每個人把自己牌的數字記下后,再重新洗牌、發牌、記數,這樣反復幾次后,3人各自記錄的數字的和順次為13,15,23。問:這3張牌的數字分別是多少?
解:13+15+23=51,51=3×17。
因為17>13,摸17次是不可能的,所以摸了 3次, 3張撲克牌數字之和是17,可能的情況有下面15種:
①1,6,10 ②1,7,9 ③1,8,8
④2,5,10 ⑤2,6,9 ⑥2,7,8
⑦3,4,10 ⑧3,5,9 ⑨3,6,8
⑩3,7,7 (11)4,4,9 (12)4,5,8
(13)4,6,7 (14)5,5,7 (15)5,6,6
只有第⑧種情況可以滿足題目要求,即
3+5+5=13;3+3+9=15;5+9+9=23。
這3張牌的數字分別是3,5和9。
例9 寫出12個都是合數的連續自然數。
分析一:在尋找質數的過程中,我們可以看出100以內最多可以寫出7個連續的合數:90,91,92,93,94,95,96。我們把篩選法繼續運用下去,把考查的范圍擴大一些就行了。
解法1:用篩選法可以求得在113與127之間共有12個都是合數的連續自然數:
114,115,116,117,118,119,120,
121,122,123,124,125,126。
分析二:如果12個連續自然數中,第1個是2的倍數,第2個是3的倍數,第3個是4的倍數……第12個是13的倍數,那么這12個數就都是合數。
又m+2,m+3,…,m+13是12個連續整數,故只要m是2,3,…,13的公倍數,這12個連續整數就一定都是合數。
解法2:設m為2,3,4,…,13這12個數的最小公倍數。m+2,m+3,m+4,…,m+13分別是2的倍數,3的倍數,4的倍數……13的倍數,因此12個數都是合數。
說明:我們還可以寫出
13!+2,13!+3,…,13!+13
(其中n!=1×2×3×…×n)這12個連續合數來。
同樣,
(m+1)!+2,(m+1)!+3,…,(m+1)!+m+1是m個連續的合數。