第382問の解答


問題[整数の性質 (場合の数)]

問題図 左図のように、1からnまでの整数を全部掛け算すると(n!=nの階乗)、末尾にいくつか0が続きます。

では、0以上1000以下の整数の中で、末尾に続く0の個数になることができないものはいくつあるでしょうか。


解答例1

マサルさん、Taroさん、CRYING DOLPHINさん、もありすさん、那由他さん、sugitakukunさん、シンクロさん、拓パパさん、小西孝一さん、ミミズクはくず耳さん、小学名探偵さん、ちこりんさん、M.Hossieさん、ポケモンハルカさん、 他多数

10=2×5と素因数分解できますので、n!で末尾に続く0の個数は、n!に含まれる2と5の個数を数えることになりますが、2の個数は5の個数よりもはるかに多いので、5の個数だけ調べればいいことになります。

参考図1

上表より、1から順に整数を掛け合わせていくと、5の倍数が現れるたびに1個ずつ5の個数が増えていきます。
ただし、25の倍数や125の倍数のように5を複数個因数として持つ整数のときは、累計個数として表せない整数が発生します。(5kの倍数のときにk-1個)  ・・・ (1)

このまま地道に数えていくのも一つの方法ですが、いずれにしてもn!にある5の個数(Nとします)が1000以上となるnをまず調べてみましょう。

参考図2

n!に含まれる5kの倍数の個数をNkとします。
 Nk=[n/
5k] (ただし、[x]は、xの整数部分を表す)
と表されます。

56=15625となるので、55の倍数までを数えればいいことが分かります。
上図で横方向に数えていけば、
 N=N1+N2+N3+N4+N5
となります。

これは、縦方向に数えていくと、
 N=(N1−N2)×1+(N2−N3)×2+(N3−N4)×3+(N4−N5)×4+N5×5
  =N1+N2+N3+N4+N5
となることからも分かります。

Nk≒n/5k(誤差は1より小)なので、
 N≒n/
51+n/52+n/53+n/54+n/55+
  ≒n/
51×1/(1−1/5)
  =n/4

よって、N≧1000となるのは、n≒1000×4=4000と分かります。
さて、n=4000のとき、
 N1
=[4000/5]=800、N2=[4000/25]=160、N3=[4000/125]=32、
 N4
=[4000/625]=6、N3=[4000/3125]=1 
より、N=800+160+32+6+1=999個

また、n=4005のとき、
 N1
=[4005/5]=801、N2=[4005/25]=160、N3=[4005/125]=32、
 N4
=[4005/625]=6、N3=[4005/3125]=1 
より、N=801+160+32+6+1=1000個となります。

さて、(1)より、1000までの整数で5の累計個数とならないものの個数をn'とすると、
 n'=(N2−N3)×1+(N3−N4)×2+(N4−N5)×3+N5×4
  =N2+N3+N4+N5
  =160+32+6+1
  =199個
と求まります。

これは、1000までに現れる5の累計個数のパターンが、N1=801個ということから、
 n'=N−N1=1000−801=199個
とも計算できます。

答: 199個

以上


(その他の解法)