文系とて容赦はしないガチ問題 – 2017年京大 文系 数学 第2問
2017年京大 文系 数学 第2問 は特定の数字(本問では2と5)のみを約数に持つ数字の個数を求める問題です。ありがちな問題ですが、本問は文系専用問題であるにもかかわらず、出題者が「獅子は兎を狩るにも全力を尽くす」的な本気度を全開にしてぶつけてきています。問題文は以下のとおりです。
次の問いに答えよ。ただし, 0.3010 < log102 < 0.3011 であることは用いてよい。
(1) 100桁以下の自然数で,2以外の素因数をもたないものの個数を求めよ。
(2) 100桁の自然数で,2と5以外の素因数をもたないものの個数を求めよ。
一見簡単に解けそうに見えますが、特に小問2がヤヴァイです。それでは見ていきましょう。
2017年京大 文系 数学 第2問 小問1の解法
10進法で100桁以下というのがどういう数字かですが、2桁以下というのが 99 以下、すなわち 102 未満であることから、100桁以下は 10100 未満であることがわかります。
したがって求める個数は、
2^n < 10^{100}
を満たす非負整数 n の個数です( n = 0 も有りなのに注意)。
不等式の両辺の常用対数を取って
n < \frac{100}{ \log_{10} 2}
なので、 log102 の近似値を使って
\frac{100}{0.3011 } = 332.1 <\frac{100}{\log_{10} 2}
です。(有効数字4桁)。よって n は332 以下であることがわかりますが、念のため、 \displaystyle\frac{100}{0.3011} と \displaystyle\frac{100}{0.3010} の間に整数が無いことを確認しておきましょう(もしそれらの間に整数が有ったりしたら、その整数と \displaystyle\frac{100}{ \log_{10} 2} との大小が判定できなくて面倒くさいことになる)。
ところが、
\frac{100}{0.3010 } = 332.2
なので、
332 <\frac{100}{\log_{10} 2} < 333
です。よって、 n は332 以下の非負整数であることが、晴れてわかりました。そのような n は 0 も含めて 333 個有りますので、答えは 333 個です。
2017年京大 文系 数学 第2問 小問2の解法
5 や log105 が出てこないように何とかする
100桁の自然数で、素因数が 2 または 5 しか無い数字の個数を求めよ、ということなので、
10^{99} \leqq 2^n5^m < 10^{100}
を満たす非負整数 n,m の組み合わせの個数を求めよ、というのが題意となります。
小問1の時と違って log105 の近似値が与えられていないので、どうしようかと悩む局面ですが、ここで 5 × 2 = 10 であることを思い出しましょう。
5m に 2-m ・2m を掛けることによって、
10^{99} \leqq 2^n 2^{-m}10^m < 10^{100}
を得ます。いい感じに 5 がいなくなりました。十進法ばんざい。
常用対数を取って定式化する
両辺の常用対数を取って
99 \leqq m +(n-m) \log_{10} 2 < 100
です。ここで k = n –m と置くと、
99 \leqq m +k \log_{10} 2 < 100
整理して
\frac{99 -m}{\log_{10}2} \leqq k < \frac{100 -m}{\log_{10}2}
を得ます。
m が取り得る範囲を動くとき、m の値に対して不等式を満たす k の個数を求めてそれを足し合わせれば、求める個数が得られます。方針が見えてきました。
5の指数 m の取り得る値の範囲を求める
そこで、 m が取り得る値の範囲を求めます。
最小値が0なのは明らかなので、最大値を求めます。
5^m < 10^{100}
を満たす m の最大値が求める値なので、先ほどのように
10^m 2^{-m} < 10^{100}
と変形し、両辺の常用対数を取って
m- m\log_{10}2 < 100
なので
m < \frac{100}{1 - \log_{10}2}
です。
log102 の近似値を利用して
143 < \frac{100}{1 - \log_{10}2} < 144
であることがわかるので、 m の取り得る値の範囲は
0 \leqq m \leqq 143
です。
0 ≦ m ≦ 99 の場合
まず、 0 ≦ m ≦ 99 の場合を考えます。このように m の範囲を絞るのは、 不等式
\frac{99 -m}{\log_{10}2} \leqq k < \frac{100 -m}{\log_{10}2}
の左辺、右辺が共に非負になるからです。
\frac{100 -m}{\log_{10}2} - \frac{99 -m}{\log_{10}2} = \frac{1}{\log_{10}2} \fallingdotseq 3.32
なので、不等式を満たす k の個数は m の値に応じて、3個か4個です。
これが具体的にいくつなのかは 99 – m の1桁目の値に応じて決まるので、最初は10パターン分計算してみようと考えましたが、よく考えてみると m ごとの k の存在区間は切れ目なく重複無くつながるので、k の存在範囲は
0 \leqq k < \frac{100}{\log_{10}2}
となります。これを満たす非負整数 k の個数は、小問1で見たとおり 333 個です。
100 ≦ m ≦ 143 の場合
この場合、不等式
\frac{99 -m}{\log_{10}2} \leqq k < \frac{100 -m}{\log_{10}2}
の両辺が負になるので、 -1 を掛けて
\frac{m - 100}{\log_{10}2} < - k \leqq \frac{m-99}{\log_{10}2}
と変形します。ここで l = –k = m –n と置くと、 l は正の整数です。 m の値に対して不等式を満たす整数 l の数の合計は、
0 < l \leqq \frac{44}{\log_{10}2}
の範囲にある整数 l の個数です。
あとは計算するだけのように見えますが、符号を反転させたことでもうひとつ考慮しなければならないポイントが発生します。
l = m – n なので、 n = m – l です。 n ≧ 0 ですが、これが成り立つことと l ≦ m であることは同値です。よって l が満たすべき不等式は
\frac{m - 100}{\log_{10}2} < l \leqq \min \left( \frac{m-99}{\log_{10}2} , m \right)
となります。 l の存在範囲が連続しない可能性が出てきました。面倒くさいことになってきました。
そこで、 \displaystyle\frac{m-99}{ \log_{10}2 } と m の大小を比較します。
\begin{aligned} m - \frac{m- 99}{\log_{10}2} = \frac{99 -(1- \log_{10}2)m}{\log_{10}2} \end{aligned}
なので、
m \leqq \frac{99}{1 - \log_{10}2} \fallingdotseq 141.6
です。したがって 100 ≦ m ≦ 141 のときの l の存在範囲は
\frac{m - 100}{\log_{10}2} < l \leqq \frac{m-99}{\log_{10}2}
142 ≦ m ≦ 143 のときの l の存在範囲は
\frac{m - 100}{\log_{10}2} < l \leqq m
であり、 これらの結果をまとめると l の存在範囲は
\begin{aligned} 0 < & l \leqq \frac{42}{\log_{10}2}& \text{または} \\ \frac{42}{\log_{10}2} < & l \leqq 142 &\text{または} \\ \frac{43}{\log_{10}2} < & l \leqq 143 \end{aligned}
となります。最初の2つの区間は連続するので、l の存在範囲は
0 < l \leqq 142,\frac{43}{\log_{10}2} < l \leqq 143
です。
\frac{43}{ \log_{10}2} > 142
なので、
0 < l \leqq 142,\frac{43}{\log_{10}2} < l \leqq 143
を満たす整数 l の個数は 143 個です。
以上より、条件を満たす数字の個数は 333 + 143 = 476 個です。
小問2の解法ポイント
まず、 log105 が log102 で表されることに気がつくことが、重要な第1歩です。普通はそんなこと無理と思ってしまいがちですが、常用対数だということが効いています。
次に、
10^{99} \leqq 2^n5^m < 10^{100}
の常用対数を取って得られる不等式
99 \leqq m +(n-m) \log_{10} 2 < 100
から、本稿で示したように連続する区間内に存在する整数の個数を求める問題に帰着することが、次のポイントです。不等式の左辺、右辺の数の差が1であることから、 m だけを移行するといい感じに重複無く連続エリアが構成できるが、 m に log102 とかが掛かってしまうとうまく行かないことに気がつけるかどうかが、重要です。
これに気がつけなかった場合に
\frac{99 - n \log_{10}2}{1 -\log_{10}2} \leqq m < \frac{100 - n \log_{10}2}{1 -\log_{10}2}
などと変形してしまうと、隣り合うエリア
\frac{99 - n \log_{10}2}{1 -\log_{10}2} \leqq m < \frac{100 - n \log_{10}2}{1 -\log_{10}2}
と
\frac{99 - (n +1)\log_{10}2}{1 -\log_{10}2} \leqq m < \frac{100 - (n+1) \log_{10}2}{1 -\log_{10}2}
が重複してしまうので、重複区間
\frac{99 - n \log_{10}2}{1 -\log_{10}2} \leqq m < \frac{100 - (n+1) \log_{10}2}{1 -\log_{10}2}
に整数 m がいくつあるのかを数え上げる必要が出てきます。
ただし、重複エリアの区間長は正確に1なので、この区間に存在する整数は必ず1個です。これに気がつければ後は楽勝なので、こちらのアプローチで攻めるのも有りです。
本問の小問2は文系用としては異様に難しく、大学当局が文系のひとにも、理系と同等以上の数学的センスを求めている証左と言えるでしょう。受験生の皆さんは大変ですが、準備を怠らないようにしましょう。