平方数の10進表記問題 – 2004年東大 数学 第2問

平方数と言えばアレの各辺の比(Darren VannoyによるPixabayからの画像)

2024年6月29日

 2004年東大 数学 第2問 は平方数を10進法表記したときの性質に関する問題です。問題文は以下のとおりです。

 自然数の 2 乗になる数を平方数という。以下の問いに答えよ。

(1) 10進法で表して3桁以上の平方数に対し、10の位の数を a ,1の位の数を b とおいたとき, a + b が偶数となるならば,b は0または4であることを示せ。

(2) 10進法で表して5桁以上の平方数に対し,1000の位の数,100の位の数,10の位の数,および1の位の数の4つすべてが同じ数となるならば,その平方数は10000で割り切れることを示せ。

 10進法表記ということは、各桁の数字が0から9までの高々10種類しか無いので、結構なんとかなりそうな予感がします。それでは見ていきましょう。

2004年東大 数学 第2問 小問1の解法

 平方数 n

n= 100c + 10a +b

と表記します。ここにc は1以上の自然数です。

n は平方数なので、ある自然数 m が存在して n = m2 が成り立ちます。そこで

m = 10d+e

と表記します。ここに d は1以上の自然数、 e は0から9までのいずれかの整数です。このとき、

\begin{aligned}
100c + 10a +b &= (10d+e)^2 \\
 &= 100d^2+20de+e^2
\end{aligned}

ですが、 10進表記の問題なので、 e2 が10進表記でどうなるかを考えましょう。

 すると明らかに、 e2 の1の位は b です。また、 e2 の桁数は最大で2なので、10の位の値を j で表記すると、

e^2= 10j+b

が成り立ちます。したがって、

\begin{aligned}
 & 100c + 10a +b \\
  =  &100d^2+20de+10j+b \\
 = & 100d^2 +10(2de+j) +b
\end{aligned}

が成り立つので、 a が 2de + j の1の位に等しいことがわかります。

 ここで所与の条件が「 a + b が偶数」であったことを思い出しましょう。すなわち偶奇が問題を解く鍵になりそうな予感がします。この観点から a と 2de + j の関係を改めて見直すと、 2de が常に偶数なことから、 aj の偶奇が連動することがわかります。

 これに気がつければ、あと一歩です。 a が偶数なら j も偶数、 a が奇数なら j も奇数なので、 a + b が偶数なら j + b も偶数です。 e が与えられれば bj を求めることができるので、 j + b の偶奇を実際に求めてみましょう。

ee2jbj + b
00000
11011
24044
39099
416167
525259
636369
7494913
8646410
981819

  j + b が偶数なのは、 e が0,2,8のいずれかである場合に限ることがわかりました。このとき b は0か4のいずれかなので、題意が証明できました。

2004年東大 数学 第2問 小問2の解法

 問題文がもってまわった言い回しになっていますが、要は5桁以上の平方数 n の下4桁が同じ数字なら、 n は10000で割り切れることを証明せよ、ということです。

 自然数 mn の正の平方根とします。すると証明すべきゴールは、 n の下4桁が同じ数字なら m は 100 で割り切れる、ということになります。

m = 100f+10d+e

と置いてグリグリと計算していってもよいのですが、なんか面倒くさいことになりそうなのと、小問1の結果を利用したいので、まずは n の下2桁が同じ数字なら m は10で割り切れるかどうかを確認します。

  b は0か4のいずれかなので、 xxxx44 といった平方数はない、と言えればいいのですが、よく考えてみると m = 12 のとき、n = 144 となります orz。さすがは東大。そんなに甘くありません。

 というわけで気を取り直して、 xxxx4444 といった平方数はない、ということを証明します。

 やたらと変数を増やしたくないので、やっぱり

m = 10d+e

と置きます。ただし d は10以上の自然数とします。 e は小問1のときと同様、1桁の正の整数とします。

 小問1で調べたとおり、 b が4ならば e は2か8のいずれかなので、まず e = 2 の場合を検証します。

\begin{aligned}
  & (10d+2)^2 \\
=  & 100d^2 +40d +4
\end{aligned}

なので、 4d の1の位が4である必要がありますが、 そのような数字は xx1 はxx6 のいずれかしか無いので、 d の1の位は1か6のいずれかです。

 そこで

d = 10l +1

と置きます。ここに l は自然数です。

\begin{aligned}
  & (10d+2)^2 \\
 = & (100l  +12)^2 \\
=  & 10000l^2 +2400l +144
\end{aligned}

なので、100の位の数字は 4l + 1 の1の位の数字です。

 これが4になる必要がありますが、4l + 1 は奇数なのでそんなことは絶対にありません。

 それではということで、

d = 10l +6

と置きます。すると

\begin{aligned}
  & (10d+2)^2 \\
 = & (100l  +62)^2 \\
=  & 10000l^2 +12400l +62^2
\end{aligned}

です。おそらく同じやり方で矛盾が導き出せると思いますが、筆者は62の2乗を計算するのが面倒くさくなってきたのと、このあと e = 8 のケースも検証しなければならないことから、いささかになってきました。

 ここで4444を4で割ったら1111というゾロ目になる、という天啓を得られれば、もっとずっと楽にゴールにたどり着けます。

  n が xxxx4444という10進表記になっているとき、 m は当然偶数なので、 n を4で割った値も平方数です。

 そこで

n = 10000l + 4444

と置くとき(l は自然数)、

 \frac{n}4 = 2500l + 1111

も平方数で、しかも1の位と10の位がともに1です。小問1の結果よりそのような平方数は存在しないので、下4桁がゾロ目の平方数は10000で割り切れることが(何と小問1よりはるかに楽ちんに)証明できました。

解法のポイント

ゾロ目の数字は割ってみよう!(cabototsによるPixabayからの画像)

 10進表記の問題は各桁の数字を変数に置くのが基本です。それらの変数は1桁の正の整数なので、その性質をフルに使って問題を解いていくことになります。

 ただし、桁数が大きくなるからと言って変数を増やしていくのは計算が面倒になっていくので、小問2の解法で示したように、なるべく少ない変数で対応するよう心がけましょう。

 小問1は、平方数の1の位は取りうる値が限られているという性質をきっかけにすることと、本稿で示したように実際に計算することで比較的容易にゴールにたどり着けます。

 小問2は各桁をグリグリ計算しても答えにたどり着けると思いますが、本稿で示したように4444を4で割ると1111というゾロ目になることに気がつけば、少ない労力でスマートに解くことができます。

 これにどうやって気がつくかがポイントですが、整数の問題はいろいろな約数で割って扱う数字をなるべく小さくするというのが一つのセオリーであることと、偶数の平方数なら4で割り切れるという性質を利用しようと常に心がけておくこと、ゾロ目の問題はとりあえずその数字で割って1のゾロ目にしてみる、といったあたりに気をつけておくと、ひらめきを得られるでしょう。

東大2004年

Posted by mine_kikaku