京都大学2024年文系数学第4問(解答・解説)
2005年に日本ジュニア数学オリンピックで同じような問題(十進法と五進法で桁数が変わらない自然数の個数を問う問題)が出されています(日本ジュニア数学オリンピック(JJMO)2005年予選第5問)。
問題文がやや抽象的でわかりにくいかもしれないので、簡単な例で実験してみます。
2進法、3進法、4進法で桁数が同じになるものについて考えます。
1桁 2桁
2進法 1 2〜3
3進法 1〜2 3〜8
4進法 1〜3 4〜15
2桁の2進数の最大の数(3)が2桁の4進数の最小の数を下回っているから、2桁以上で条件を満たすものはなく、1桁の1のみ条件を満たすことがわかりますね。
さて、問題を解いてみましょう。
条件を満たす最大の整数(△とします)がn桁であると考えます。
10〇-1≦△<10〇 ←わかりにくければ具体例を考えてみるとよいでそう。例えば、10進法の3桁の数は100、101、・・・、999で100(102)以上1000(103)未満になります。他の進法についても同様ですね。
9〇-1≦△<9〇
8〇-1≦△<8〇
の3つの条件を満たす、つまり、
10〇-1≦△<8〇
を満たす最大の整数△を求めることになります。
〇=1 1、8
〇=2 10、8×8=64
〇=3 100、64×8=512
〇=4 1000、512×8=4096
〇=5 10000、4000×8=32000より大 ←面倒な計算を避けるため、4096の下2桁をカットしました。これで2の累乗の計算が再び利用できるようになりますね。
〇=6 100000、32000×8=256000より大
〇=7 1000000、256000×8=2048000より大 ←面倒な計算を避けるため、48をカットして00にしました。これで2の累乗の計算が再び利用できるようになりますね。
〇=8 10000000、2000000×8=16000000より大
〇=9 100000000、16000000×8=128000000より大
〇=10 1000000000、128000000×8=1024000000より大
〇=11 10000000000、1024000000×8=8192000000より大
〇=10までは△があるということが確認できましたね。
〇=11以上のとき、△がなさそうなので、厳密に計算して確認します。
811=233=1024×1024×1024×8=1073741824×8<1100000000×8<8800000000となり、11桁の整数より小さくなるので、〇=11のとき、△はありません。
また、〇が1増えると、10〇-1は10倍され、8〇は8倍されるので、〇が11以上のときに△がないことは明らかですね。
したがって、条件を満たす最大の整数は1073741824−1=1073741823となります。