[ 0055: 100!の末尾の0の個数 ]
[ 浅見多絵さんの出題 ]
100! の末尾の 0 の個数を求めてください。
連続して何個続くかという意味。
[ 湯会老人の回答 ]
Wolfram|Alpha によりますと、 100! は 158 桁の整数で、
末尾は以下のようになりました。
93326215443944152681699238856266700490715
96826438162146859296389521759999322991560
89414639761565182862536979208272237582511
85210916864000000000000000000000000
|
したがって答は 24 個になりますが、便利ツールに頼るのはインチキ。
実際に、10 で割り切って商を残すことが何回できるかを
調べてみましょう。
しかし、これだけ大きい数に対して正確な整数計算をするのは不可能。
困ったときの「整数論」頼み。
ルジャンドルの公式 の出番です。
証明は省略して、末尾で連続する 0 の個数は:
100/5 + 100/25 = 20 + 4 = 24
でした。
[ 浅見多絵さんの回答 >
もっと素朴に考えましょうよ。 1〜100 の範囲で:
個数名 |
数のグループ | 個数 |
a |
100 の倍数 (100/100) | 1 |
b |
100 を除外した 10 の倍数 (100/10-a) | 9 |
c |
10 の倍数を除外した 5 の倍数 (100/5-b-1) | 10 |
d |
10 の倍数を除外した 2 の倍数 (100/2-b-1) | 40 |
ここまでで末尾の 0 は:
a*2 + b + min(c,d) = 2 + 9 + 10 = 21
さらに: (50*2), (25*4), (5*20) によってそれぞれ「更に余分の 0」ができるため、
100! の末尾にできる連続する 0 の合計数は:
21 + 3 = 24 個です。
|