なんか見たので久しぶりに7の倍数について思いを馳せました。
7の倍数であるかどうかの判定は、他の数に比べて困難です。例えば、2や5だったら下一桁を見ればいいし、3や9だったら全ての桁を単純に足し上げていけばいいです。それに比べて、7の倍数であるかの判定は、
下から桁を3つずつ区切っていって、それらの値を順に足したり引いたりする
という、一見とても非自明な操作を行います。これは1000進数の存在を考えることによって上手く整理できるので、説明していきます。
Lv1...2,4,5,8の倍数か?
そのために、単純な例として、2,4,5,8 の例を出していきます。2と5の場合は一番単純で、
-下1桁の数字が偶数であれば2の倍数
-下1桁の数字が0か5であれば10の倍数
と一瞬で判定ができます。
なぜ下1桁を見るだけでいいかというと、10進数だからです。1234 という数があった時に$1230+4$という風にこれらを分離した時、前者がどのような数であれ10の倍数であることは明らかです。10進数の時、最短で$10^n$にたどり着く倍数が$10=2\cdot5$となることから、これらが一番単純な例となります。
同様に、4の倍数だと2桁目まで、8の倍数だと3桁目まで見れば十分ということになります。
Lv2...3,9の倍数か?
3,9の場合は少し複雑になります。なぜかというと、$10^n$は3の倍数では割り切れないからです。なので、原理的にすべての桁を見ないと判定ができません。しかし、各桁数のあまりについて着目すると面白い性質があります。
\displaylines{
1 = 0 + 1\\
10 = 9 + 1\\
100 = 99 + 1\\
1000 = 999 + 1\\
\cdots
}
全ての$10^n$について、3または9のあまりは1であることがわかります。
例えば、12345という数字があった時に、
10000+2000+300+40+5
と
1+2+3+4+5
は、3で割ったあまりという意味では全く同じです。mod記号を用いて表せば
\displaylines{
12345 \equiv 1\cdot10000+2\cdot1000+3\cdot100+4\cdot10+5 \pmod 3\\
\equiv 1\cdot1 + 2\cdot1 + 3\cdot1 + 4\cdot1 + 5 \pmod3 \\
\equiv 1+2+3+4+5 \pmod 3 \\
\equiv 0 \pmod3
}
となります。
つまり、各桁の和が3や9の倍数かだけを見れば、その数自体がそうであるかを判別することができます。
Lv3...11の倍数か?
ここで7にいかず、一旦11に逸れます。
11の倍数である場合はどうでしょうか。10進数だと少しややこしくなりそうですが、とりあえず$10^n$に対するあまりを見ていきます。
\displaylines{
1 \equiv 1 \pmod{11}\\
10 \equiv 10\cdot 1 \equiv 10 \equiv -1 \pmod{11}\\
100 \equiv 10\cdot10\equiv -10 \equiv 1\pmod{11}\\
1000 \equiv 10\cdot 100 \equiv 10 \equiv -1 \pmod{11}\\
...
}
という風に、-1と1を繰り返すことがわかります。
つまり、各桁の数を交互に足し引きしたものが11の倍数であるかどうかを見ればよいということになります。
\displaylines{
\text{ex)} 135795 \\
\equiv 1\cdot100000+3\cdot10000+5\cdot1000+7\cdot100+9\cdot10+5 \pmod{11}\\
\equiv 1\cdot-1 + 3\cdot1 + 5\cdot-1 + 7\cdot 1 + 9 \cdot -1 + 5 \pmod{11}\\
\equiv -1+3-5+7-9+5 \pmod{11} \\
\equiv 0 \pmod{11}}
Lv4...7の倍数か?
やっと7の倍数にきます。7の倍数の時はもう少し話が複雑になります。今までの話は$10^n$について
- あるnより上はすべてその数の倍数になる
- あるnに対する余りが規則的である
ということで成り立っていた議論でした。7にそのような性質はありません。
ここで、1000進数という概念を考えます。
この時、「1000進数における11の倍数」を考えると、これは前節と全く同じ議論ができます。
\displaylines{
1 \equiv 1 \pmod{11}\\
10 \equiv 10\cdot 1 \equiv 10 \equiv -1 \pmod{11}\\
100 \equiv 10\cdot10\equiv -10 \equiv 1\pmod{11}\\
1000 \equiv 10\cdot 100 \equiv 10 \equiv -1 \pmod{11}\\
...
}
つまり、各桁の符号を変えながら足していけば良いです。
「1000進数における11」は「10進数における1001」 です。そして、1001は7の倍数なので(11や13の倍数でもあります)、ついでに7でも割り切れるという訳です。「1000進数における各桁」とは「10進数における3桁区切りのかたまり」 になります。
このように考えると、下から桁を3つずつ区切っていって、それらの値を順に足したり引いたりするという操作の意味が捉えやすくなるんじゃないかと思います。