1. 程式人生 > >N的階乘末尾有多少個0

N的階乘末尾有多少個0

log 多少 blog 計算 末尾 得出 因子 bsp 問題

題目:N的階乘末尾有多少個0

分析:

以100!為例,可以產生10的有:0 2 4 5 6 8 結尾的數字,顯然2是確定的,因為4、6、8當中都含有因子2,所以都可看當是2,那麽關鍵在於5的數量了那麽該問題的實質是要求出1~100含有多少個5,在100!中1*...*5*...*10*...*15*...*20*...*25*...*30*...*35*...*40*...*45*...*50*...

其中:

5=1*5
10=2*5
15=3*5
20=4*5
25=5*5(2個5)
30=6*5
35=7*5
40=8*5
45=9*5
50=10*5=2*5*5(2個5)

5的倍數中,有100/5=20個(每個倍數中都有一個5)

25的倍數,有100/25=4個(25和50都中都有兩個5,且5的倍數包含25和50)

一個5與一個2相乘可以產生10,所以只要計算出一共有多少個5就能得出會產生多少個0了。所以100!有20+4=24個0

同理,N!有N/5+N/25+N/125+...個0

N的階乘末尾有多少個0