没問の紹介と解説をしたい

まずいですよ!

21:00頃にアドカレに登録して21:30に書き始めています。

実はさっきはてなブログの登録をしました。

f:id:syaty_48T:20201203213236j:plain

幸いにも書くことは決めていたのでなんとか間に合わせたいですね。

本題

実は先月誕生日でした。

それで誕生日に自分の誕生日11/17にちなんだ算数・数学の問題を作って投稿しようと思っていたんですね。

しかしながら、2問しか思いつかないので、あえなく没となってしまいました。

今回はそれの紹介と解説をしたいと思います。

 

というわけで以下の2問が没になった問題です。

 

  (1) 22+ \frac{17}{7}-2 \frac{3}{13} = \frac{2020}{49} \times(11-17 \div ? )

 

 (2) n!の末尾には0が1117個並ぶという。nをすべて求めよ。

 

解いてみたい方は一度ここで読むのを中断していただいて構いません。

 

 (1)は2020/11/17に22になったということでそれに関する要素が盛り込まれた算数の問題ですね。

 

ある数が与えられてその数の階乗の末尾の 0の数を求める問題はよくある問題ですが、 (2)のように末尾の 0の数から数字を求める問題は珍しいんじゃないでしょうか。

 

この辺で22:00時を回ってきました。果たして間に合うのでしょうか…。

 

解説

 

 (1)

左辺がおぞましい形をしていますが、まずは右辺に注目してみましょう。

 

 \frac{2020}{49} \times(11-17 \div ? )

 

分子に 2020が入っているのがわかると思います。

 

ということは恐らく左辺にも 2020が入ってくると予想できるのではないかなと思います。

 

さて、では左辺を見てみましょう。

 

 22+ \frac{17}{7}-2 \frac{3}{13}

 

分母が 91になることはわかると思います。また、 22\times91\fallingdotseq2000ということはなんとなくわかると思います。

 

このことから左辺が \frac{2020}{91}になることは実際に計算しなくても予想できますね。

 

 \frac{2020}{91}= \frac{2020}{49} \times(11-17 \div ? )

 

ただし、このテクニックは名門中学入試など答えがきれいになることがある程度担保されていないと使えないことに気をつける必要があります。

 

あとは、ゴリゴリ計算していくだけなので簡単です。

 

答えは \frac{13}{8}になります。

 

要素を盛り込みつつ答えをある程度きれいにするのが大変だった問題でした。

 

なお、晩飯を食べていたので現在時刻は23:00です。まずいですよ!

 

 (2)

この問題ではまず、階乗の末尾の 0の数をどのようにして求めるかを知っておく必要があります。

 

ある数の末尾の 0の数というのは、その数が何回 10で割り切れるかという問題と同値であると言えますね。

 

また、 10で割り切れる回数というのは、その数が素因数として持つ 2の数と 5の数のうち、より小さい方であると言えます。

 

例えば 1500の末尾の数が2つであることは自明ですが、これは 1500=2^2\times3\times5^3であることから 2の乗数 2 5の乗数 3のうちより小さい方、すなわち 2である、というふうに解くことも出来ます。

 

では、 n!ではどうでしょうか。

 

 n! 1から nまでの数の積なので n以下の自然数が因数として持つ 2の数と、 5の数を調べることで解くことが出来ますね。

 

 n以下の自然数のうち、 aを因数に持つ数がいくつあるのかは \lfloor\frac{n}{a}\rfloorで求めることが出来ます。

 

ここで \lfloor x\rfloor床関数と呼ばれる関数で x以下で最も大きい整数を返す関数です。

 

例えば 100以下の数で 7を因数として持つ数は \lfloor\frac{100}{7}\rfloor=13個となります。

 

これで、 n! 2 5を因数としていくつ持っているかがわかりますね!

 

というのは実は罠です。

 

なぜなら n以下の数には 2^2 5^3を因数に含む数がある可能性もあるからです。

 

よって、 n!が因数 aをいくつ持っているかを調べるには、 n a^2を因数に持つ数や、 a^3を因数に持つ数も調べる必要があります。

 

したがって、 n!が因数として持つ aの数は以下の式で求めることが出来ます。

 

 \sum_{i=1}^{\infty} \lfloor\frac{n}{a^i}\rfloor

 

さて、これで n!の末尾の 0の数を求める式を導けました。

 

 \min\{\sum_{i=1}^{\infty} \lfloor\frac{n}{2^i}\rfloor,\sum_{i=1}^{\infty} \lfloor\frac{n}{5^i}\rfloor\}

 

また冷静に考えれば n以下の数で 2で割り切れる数より、 5で割り切れる数のほうが少ないのは自明なので、

 

 \sum_{i=1}^{\infty} \lfloor\frac{n}{5^i}\rfloor

 

とできます。

 

例えば、 100!の末尾の 0の数は \sum_{i=1}^{\infty} \lfloor\frac{100}{5^i}\rfloor =20+4=24とわかりますね。

 

それでは問題を解いていきましょう。

 

今回の問題は末尾の 0の数から nを求める問題となっています。

 

皆さんは nがどのくらいの値になるか想像つきますか?

 

私には付きません…

 

なので式変形をして

 

おおっとここで日付が変わりました!(死)

 

。。。

 

なのでここで式変形をしてnの範囲を絞ってやりましょう。

 

ここでは、 \sum_{i=1}^{\infty}\frac{1}{n^i}=\frac{1}{n-1}を利用して式変形をしていきます。

 

 1117=\sum_{i=1}^{\infty}\lfloor\frac{n}{5^i}\rfloor

 

 \leq\sum_{i=1}^{\infty}\frac{n}{5^i}

 

 =\frac{n}{4}

 

よって n\geq 4468

 

ここまで絞ればあとは実際に 4470あたりで末尾の 0の数を計算すれば少し寄せるだけで答えにたどり着きます。

 

答えは n=4475,4476,4477,4478,4479となります。

 

終わりに

 

時間が余ったらMisskeyに投稿した問題の解説でもしようと思ったんですが、普通に無理でしたね。