如何求階乘的最后兩位非零數字


題目(4星難度):90!末尾一定有許多0,在這一長串0出現之前,最后兩位數字是什么?

輔導方法:將題目寫給小朋友,讓他自行思考解答,

若20分鍾仍然沒有思路,再由家長進行提示性講解。

講解思路:這道題屬於數論問題,計算比較繁瑣容易出錯,解題方法有很多種,

有的方法是對100求余數,有的方法是對25求余數。

過程都需要用到以下兩個知識點:設m,n,p,q,a,b都是正整數,p除以n的余數是a,q除以n的余數是b,

(1)若m=p+q,

則m與a+b除以n的余數相同;

(2)若m=p*q,

則m與a*b除以n的余數相同。

下面我們介紹對25求余數的方法,這種方法利用了連續4個數相乘的性質,

總的解題思路是:第一步對5的整數倍分解因數;第二步考慮最后兩位數是不是4的整數倍;第三步計算當a是5的整數倍時,

a后面連續4個數的乘積除以25的余數;最后把1到90的數分為兩類,分別計算去掉末尾0后除以25的余數。

步驟1:

先思考第一個問題,

對5的整數倍分解因數。

這個問題比較簡單,直接計算即可:

5*10*15*…*85*90

=(5^18)*(1*2*…*18)

=(5^18)*(2^9)*(1*3*5…*17)*(1*2*3*…*9)

=(5^21)*(2^16)*(3^4)*(7*9*7*9*11*13*17)。

步驟2:

再思考第二個問題,

90!去掉末尾連續的0后,

最后兩位非0的數字是不是4的整數倍?

末尾的0都是由5的整數倍產生的,

由於把1到90分解因數后,

2出現的次數遠大於5出現次數,

故末尾連續0的個數等於5出現次數,

也就是步驟1中得到的21。

故90!/(10^21)末尾最后2位數,

就是題目中要求解的數字。

因為2出現的次數遠大於5出現次數,

故90!/(10^21)是4的整數倍,

其最后2位數也一定是4的整數倍。

步驟3:

再思考第三個問題,

當a是5的整數倍時,

計算a后連續4個數的乘積除以25的余數。

不妨設a=5k,

則(a+1)(a+2)(a+3)(a+4)

=[(5k+1)(5k+4)][5k+2](5k+3)]

=(25k^2+25k+4) (25k^2+25k+6),

應用余數的第二個知識點可得,

連續4個數除以25的余數為24=4*6。

步驟4:

綜合上述幾個問題,

考慮原題目的答案。

將1到90的數分為兩類,

第一類是5的整數倍與32;

第二類是其余數字去掉32。

由於32=2^5,

根據步驟1的結論可得,

第一類數字乘積的末尾恰有21個0,

則90!/(10^21)可以分為兩部分計算,

第一部分是(3^4)*(7*9*7*9*11*13*17),

第二部分是第二類數的乘積。

下面計算90!/(10^21)除以25的余數:

第一部分逐個計算,

可得其除以25的余數是9;

第二部分可以看作18個組,

其中第17組缺少32,

其余各組都是連續4個自然數,

{1,2,3,4}{6,7,8,9},…,{86,87,88,89},

結合步驟3的結論可得,

第二部分除以25的余數等於

(24^17)*31*33*34,

由於24^2=576除以25的余數是1,

故(24^17)*31*33*34除以25的余數,

就等於24*31*33*34除以25的余數,

直接計算可得該余數是18。

由於9*18除以25的余數是12,

故90!/(10^21)除以25的余數也是12。

因此90!/(10^21)的末尾兩位可能是:

12,37,62或87。

結合步驟2中4的倍數的結論,

則90!/(10^21)的末尾兩位是12,

由於90!末尾有連續21個0,

所以原題的答案是12。

注:1.在所有求余數的過程中,乘積都不用直接計算,只需計算余數的乘積;

2.原題也可以直接對100求余數,用到(10n+k)(10n+10-k)的末兩位數字就是k(10-k),感興趣的朋友組合計算。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM