整数がxの倍数であるか否かを判定する方法は,中学数学の問題だと思うが,
[1]x=2:1の位が0,2,4,6,8
[2]x=3:各位の数の和が3の倍数
[3]x=4:下2桁が4の倍数(100は4の倍数だから)
[4]x=5:1の位が0,5
[5]x=6:1の位が0,2,4,6,8かつ各位の数の和が3の倍数
[6]x=8:下3桁が8の倍数(1000は8の倍数だから)
[7]x=9:各位の数の和が9の倍数
[8]x=10:1の位が0
[9]x=12:下2桁が4の倍数かつ各位の数の和が3の倍数
7の倍数であることの判定法はあるにはあるのだが煩わしいので,まず3,9,11の倍数であることの判定法を導いてみよう.
===================================
P=an・10^(n-1)+an-1・10^(n-2)+・・・+a1
において,10=1(mod9)より
P=an+an-1+・・・+a1 (mod9)
したがって,
[1]各位の数の和が3の倍数のとき,そのときに限り3の倍数である.
[2]各位の数の和が9の倍数のとき,そのときに限り9の倍数である.
また,10=−1(mod11)より
P=(a1+a3+・・・)−(a2+a4+・・・) (mod11)
したがって,
[3]奇数番目の桁の数の和と偶数番目の桁の数の和との差が11の倍数のとき,そのときに限り11の倍数である.
===================================
整数を普通の10進法で表した場合の倍数の判定法はよいとして,整数を100進法で表した場合
P=an・100^(n-1)+an-1・100^(n-2)+・・・+a1
その数が101で割り切れるかどうかの判定法となるとどうだろうか?
100=−1(mod101)より
P=(a1+a3+・・・)−(a2+a4+・・・) (mod11)
したがって,
[4]奇数番目の桁の数の和と偶数番目の桁の数の和との差が101の倍数のとき,そのときに限り101の倍数である.
整数を1000進法で表した場合
P=an・1000^(n-1)+an-1・1000^(n-2)+・・・+a1
その数が37で割り切れるかどうかの判定法は,1000=1(mod37)より
P=an+an-1+・・・+a1 (mod37)
[5]各位の数の和が37の倍数のとき,そのときに限り37の倍数である.
また,1000=−1(mod7・11・13=1001)より
P=(a1+a3+・・・)−(a2+a4+・・・) (mod7・11・13)
[6]奇数番目の桁の数の和と偶数番目の桁の数の和との差が7,11,13の倍数のとき,そのときに限りその数のの倍数である.
===================================
ところで,1001=7・11・13は連続する3つの素数の積になっている不思議な数である.この1001を繰り返して使うと,10進法で7の倍数,13の倍数を判定できる.
すなわち,整数aがあったとき,1001をどんどん引いていけば最終的には1000以下の整数bになる.この整数bが7の倍数,13の倍数のとき,整数aも7の倍数,13の倍数である.したがって,3桁の整数が7の倍数,13の倍数であることが判定できればよいことになる.
P=a3・10^2+a2・10+a1
において,
P=2a3+3a2+a3 (mod7)
P=a3−a2+a3 (mod11)
P=−4a3−3a2+a3 (mod13)
[7]3桁の数が7の倍数であるためには2a3+3a2+a3が7の倍数になることが必要十分である.
[8]3桁の数が13の倍数であるためには−4a3−3a2+a3が13の倍数になることが必要十分である.
===================================