比較的かんたんな「あまり」の求め方(1)

概要

最近 mod の勉強をして、小さめの数 (1~20くらい) で割るときに比較的楽に余りを求める方法を考えたことのメモ。 画期的な新発見や学術的な意味を求めて来たという方は回れ右を推奨。

ここでは、次の問題を考える。 「なにかしら数  M をもってきたときに、それが指定された数  N で割れるか?」を考える。 ただし、この数  M, N はどちらも十進数で表記されたものとする。

例えば、「9,876,543,210は7で割れるか?」とかだ。 これは割ってみると 2 余る。ついでに、この事実から 98,765,432,101 は 7 で割れることがすぐに分かる。

これらを、実際に数字を並べてみて眺めながら、割り切れる条件(あるいは余り)を考えてみるのが今回のテーマである。 では、順番に見ていく。

常識的な方法:2, 5

2と5は小学生でも習うと思う。というか、すぐに気づくと思う。

  • 2で割り切れるかどうかは、1の位の数が2で割り切れるかどうかで決まる。
  • 5で割り切れるかどうかは、1の位の数が5で割り切れるかどうかで決まる。

このことは mod で考えてもいいのだけど、それは後でやろう。 図で考えてみると分かりやすい。 2で割って割り切れる数、つまり、2の倍数を並べてみよう。

偶数と奇数を見分ける方法なので、誰でも知っていそうなレベルだ。 しかし、なぜ「1の位が2で割れると、2で割り切れる」と言えるのだろうか? 数学的にではないが、図から直感的な説明をしてみよう。

当たり前だが、2の倍数は2個ずつ現れる。 そして、数を2個ずつ5回並べたら、桁上りして必ず一周する。 したがって、 10 の位より上がどうなろうとも、 2の倍数の現れ方――「2の倍数は 1の位が 0,2,4,6,8 の順で現れる」という規則――は変わらない。 この規則が変わらないので、「1の位が2で割れると、2で割り切れる」と言えるのである。

5の倍数についても並べてみよう。

5も同じで、「5の倍数は 1の位が 0,5 の順で現れる」という規則は、何桁の数になっても変わらない。 これも、数を5個ずつ2回並べたら、桁上りして必ず一周するためである。 したがって、5の倍数も1の位を見ると簡単に求まる。

有名な方法:4, 8

小学生の算数の復習を超えて、中学生くらいのレベルにいこう。

4 や 8 で割り切れるかの判定は、少し難しくなる。 何が難しいって、 1の位を見ただけでは分からないのだ。 例えば 72 は、 1の位が 4 でも 8 でも無いが、 4 でも 8 でも割り切れる。

けれど、実はそれほど大変でもない。判定方法は以下の通りである。

  • 4 で割り切れるかどうかは、10の位までの数が 4 で割り切れるかどうかで決まる。
  • 8 で割り切れるかどうかは、100の位までの数が 8 で割り切れるかどうかで決まる。

特徴は、2や5と同じく「どんな大きな数でも、下の方の位の数をいくつか見るだけで、割り切れるかどうか分かる」ということだ。

4 で割り切れる数

まず、4で割り切れる数だ。 これも画像で出してみよう。

規則的に並んでいてきれいではあるが、先程のような分かりやすさは無い。 どうすればいいだろうか?

規則性が無いなら、規則性が現れるまで繰り返させてみるといい。 この場合、10ずつの繰り返しでは上手くいかなさそうだが、20ずつなら上手くいきそうだ。

きれいに同じ規則で繰り返されることがわかった。 …分かったは良いけれど、これもまだ分かりづらい。 というのも、ここから分かることは 「数を 20 ずつ区切ったら規則がある」 ということだからだ。 20 ずつ区切るのが面倒な以上、この規則は使いづらい。

ということで、 100 が 20 の倍数になることに注目する。 これを 20個の列を 5回繰り返せば、 100個の列になる。 そして、100個の列に現れる数とはつまり、10の位までの数であり、 それが 4 で割り切れるかどうかで判断できる。

実際に 100個ずつ並べたものが以下の図である(一部省略)。 10の位までの数が、100個ごとに繰り返されていることが分かる。

ごちゃごちゃ言ったが、まとめると以下のようになる。

  • 4 の倍数は 10個ずつ並べても繰り返されない(=1の位だけだと分からない)。
  • 4 の倍数は 100個ずつ並べると繰り返される。
  • 100個ずつ区切った数とは、10の位までの数だから、10の位までの数が 4 で割れたら、元の数も 4 で割り切れる。

8 で割り切れる数

では、次は 8 の倍数を見てみよう。

階段状に並んでいてきれいだが、しかし規則性がはっきりしない。 さっきと同じように、100個ずつ並べてみてはどうだろうか?

これでもまだ斜めに規則が現れていて、分かりづらい。 しかし、どうも 200個ずつ並べれば、同じ規則で並びそうだ。 これは実際に正しいのだけれど、さっき 20 個ずつ並べても分かりづらかったのと同じで、200個ずつ並べても分かりづらい。

というわけで、 200個ずつを同じように 1,000個ずつに拡張してみよう。 ただし、横に1000個ずつ並べるのは厳しいので、表の縦と横を交換する。

画像を見ると、たしかに 100の位以下の数が、1,000ずつ繰り返されていることが分かる。

4 と 8 のまとめ

まとめると、数字を下から2桁だけ見れば4の倍数か分かる。 下から3桁まで見れば8の倍数か分かる。

例えば、 7,892 はどうだろうか?

92 は 4 で割れるので、4の倍数だ ( 92=40+40+12と考えると分かりやすい)。

892 は 8 で割れないので、8の倍数ではない ( 892=800+80+12と考えると分かりやすい)。

このように下の方の桁の数だけ見れば済むので便利である。 逆に、普通なら筆算して上の桁から求めていくだろうが、そんなことをする必要が無い。

受験用の方法:3, 9

中学や高校受験で、運が良ければ先生に教えてもらえそうなのが、 3 と 9 で割り切れる数だ。

答えからいうと、以下のような規則がある。

  • 3で割り切れるかどうかは、すべての位の数の和が3で割り切れるかどうかで決まる。
  • 9で割り切れるかどうかは、すべての位の数の和が9で割り切れるかどうかで決まる。

画像を眺めてみる

早速画像を見て、その理由を考えていこう。

非常にきれいに、一マスごとの斜めになっている。

きれいだが、1の位が違うすべてのマスに現れてしまうということは、 1の位の数では規則性が絶対に見つからないということでもある。

更に、同じことが10の位についても言える。 1の位を無視して斜めの数を見てみると、 この数表を斜めに辿ることによって、 3で割り切れる数の中に10 の位の数もすべての数が現れている。 したがって、同様に10の位の数でも規則性が絶対に見つからないのだ。

では、4の倍数のときにやった手段で、100個ずつ並べてみよう。 今度は3と9の倍数を同時に表示する。3が緑で、9が赤だ。

見ての通り、 10個ずつ並べてもダメなら、 100個ずつ並べてもダメである。 きれいに斜めに並んでいること以外は、何一つ規則性が見つからない。

割り切れる理由

だが、逆に、斜めに並んでいることを活かせないだろうか。

そもそも、「斜めに並んでいる」ということはどういうことだろう。 例えば、 12 が 21 になったり、63 が 72 になったりするのは、どういうことだろうか。

よくよく考えてみると、斜めにマスを移動するということは、 10を足して1を引くということだと気づく。 10ずつ並べた表では、「1マス下に移動する」ということは「数字に10を足す」ということと等しい。 「1マス左に移動する」ということは「数字から1を引く」ということと等しい。

「いや、そんなの9足してるんだから当たり前じゃん」という感想を抱くかもしれないが、 ここでは「10」と「1」の操作に分けたことに意味がある。 これは言い換えれば、3で割り切れる数の中でマス目を斜めに移動しようとするとき、 必ず10の位は1増えて、必ず1の位が1減るのだ。

これは見方を変えれば、斜めにマス目を移動する限り、10の位の数と1の位の数の合計は変わらないということだ。 3 から始まる列は、12, 21, 30, 39, 48, 57, ... と続く。 30 から 39 への移動は少し特殊だが、3 の倍数に 9 を足しても割り切れるはずなので、 これ以降同じことが起きても規則は変わらない。

そして、 1+2=3, 2+1=3, 3+0=3, 3+9=12→1+2=3, 4+8=12→1+2=3, 5+7=12→1+2=3 ... と続き、 いつまで経っても和が 3 になることが分かる。 30→39 の移動は特殊だったので繰り上がりが起きて和が 12 になっているが、 12 に対して同じことをすれば 3 になる。 言い換えれば、 10 の位の数は、1の位の数と足し合わせてしまっても、 3 で割り切れるかどうかは変わらないのである。

以上のように、「きれいに斜めに並んでいる」ということを活かせば、 「10の位の数と1の位の数の合計は変わらない」という規則が見つかった。 そこで、「上の位の数を1の位の数に持っていく」という操作を繰り返せば、 「すべての位の数の和が3で割り切れるかどうか」で「3で割り切れるかどうか」を判定できることがわかった。

いや、ちょっと待ってみよう。10の位の数と1の位の数については見たが、 100の位の数、あるいはもっと上の位の数は見ていない。 それなのに「すべての位の数の和」で同じことが言えると言っても、本当に良いのだろうか?

このことは、100ずつ並べた先程の図を見直すと、ある程度目星が付く。 もう一度眺めてみよう。

表から分かるように、10ずつ並べても、100ずつ並べても、このきれいな斜めの規則は変わらないのである。 そして、マス目を移動するとき、縦移動が10倍になる ――つまり、先程は10の位と1の位のペアだったのが、今度は100の位と1の位のペアになる――だけで、 異なる位の数同士で数字を分け合っていることに変わりはない。

しかし、10ずつ、100ずつは良いとして、1,000ずつ、1万ずつ、・・・と並べたとき、 いつでもこの表は斜めになるのだろうか? このことを、もう少しマス目移動の原理でちゃんと説明してみよう。

これらの数は、1引くとすべて9の倍数になるところがミソである。 10-1=9、100-1=99、1000-1=999、・・・なので、 10、100、1,000 などの10の累乗で数を並べた場合、 「斜め1マス先に移動する」ということは「元の数に9の倍数を足す」ということになる。

9の倍数は3の倍数でも9の倍数でもあるので、3でも9でも割り切れる。 逆に言うと、ある数が3の倍数なら、「その(9の倍数を足した)斜め1マス先」も3の倍数になる。 ある数が9の倍数なら、「その斜め1マス先」も9の倍数になる。

なので、きれいに10、100、1,000 などの10の累乗で数を並べる限りは、 3の倍数や9の倍数が斜めの位置関係で並ぶ規則は変わらないのである。 たとえそれが一億だろうが一兆だろうが関係なく、斜めに規則的に並ぶ。

補足: 数式を使った方が証明がシンプルかもしれないが、 なるべく図解で説明することにこだわってみた。 数式による解説は別にやりたい(やるとは言ってない)。