SNSで
が少し話題になりました。どこかの大学の入試問題らしいです。
明らかになので、元の問題は
に言い換えられ、
が答えになります。
さて、を解いてみましょう。
ここで二進数を使ってみます。
理由は元の投稿者がを使わずに5の累乗の計算をしていました。
もっとシンプルにを使わずに解けないか、と考え、2の累乗があったので2進数を利用する方法を思いつきました。
とは2進数では1の後に0が19個付く20桁の数として表現出来ます。
は二進数でこう書けます。
注目すべきは桁の変動です。
つまり二進数の世界では、
5の累乗に5を掛けても高々2桁3桁*1しか変化しないことが予測できます。
なので、5の二乗なら高々4桁6桁しか変化しないことが予測できます。
というわけで、計算してみると
は二進数世界で19桁が分かりました。
これに5を掛けると高々2桁3桁の変動が起きるので、
は二進数世界で20桁を超えるのが分かりました。
よって
pythonで確かめてるので、大丈夫。
n =0 while 5**n<10**19: n+=1 print(n) for i in range(2,10,2): a = 5**i binary_num = bin(a) print(binary_num ,len(binary_num)-2,i) if a>=2**19: print("n="+str(i)) break
*1:筆算のイメージがあれば簡単にわかる。