一の位から、桁の数値に、
1,3,2、-1、-3、-2、を掛けてゆく方法を
下記に示した。この6つの掛ける数は、循環する。
http://blogs.yahoo.co.jp/st5402jp/18488369.html
比較的に覚えやすいので、まあ、使えるかと思う。
(n+1)桁の整数Aは、AnAn-1・・・A3A2A1A0、
=An×10^n+An-1×10^(n-1)+
・・・+A3×10^3+A2×10^2+A1×10+A0
=Σ(An×10^n) と表される。
私の方法と違って、
もっと一般的に、一桁ずつの余りを足してゆく方法である。
そこでは、まず位を表す10のn乗、つまり、10^nを
1,10,100,1000、・・
つまり、10^0,10^1,10^2,10^3、・・を
それぞれ7で割った余りを求める。
そこで例えば、1000を7で割った余りは、
100を7で割った余りに、10を7で割った余りを掛ければよい
と言うようなやり方で余りを求めてゆく。
10^(k-1)=7M+a、10=7+3、とすると、
これらを掛けて、10^k
=10^(k-1)×10=(7M+a)(7+3)
=7^2×M+3×7M+7×a+3a
=7の倍数+3a、となり、余りは、3a、から求められる。
つまり、10^kを7で割った余りは
10^(k-1)を割った余り×10を割った余り3
=3a、で求められることが分かる。このことを使って、
1は、7×0+1として、余りは、1
10は、7+3として、余りは、3
100は、10で割った余りを2回かけて、3×3=9=7+2、余りは、2
1000は、
100で割った余り×10を割った余り=3×2=6=7-1、余りは、―1
10^4は、
1000を割った余り×10を割った余り=(-1)×3=-3、余りは、-3
10^5は、
10^4を割った余り×10を割った余り
=(-3)×3=-9=-7-2、余りは、-2
10^6は、
10^5を割った余り×10を割った余り
=(-2)×3=-6=-7+1、余りは、1
10^7は、
10^6を割った余り×10を割った余り=1×3=3、余りは、3、となり
余りが、1、となった時点で、そこからは、
計算過程が同じなので、1,3,2、-1、-3、-2、を繰り返す
ということが分かる。
ゆえに
整数A=Σ(An×10^n)
=Σ(An×((7で割った商)+(7で割った余り)))
=Σ(An×(7Kn+それぞれの桁の余り)) となるので、
=Σ(An×7Kn(7の倍数部分))+Σ(An×余り(倍数判定部分))
7の倍数部分を除いて、
倍数判定部分である「Σ桁の数An×余り」だけを下1桁から表すと、
A0×1+A1×3+A2×2+A3×(-1)+A4×(-3)+A5×(-2)+・・
となって、このように、
1,3,2、-1、-3、-2、を循環して、
一桁ずつに掛けて、それらを足して、判定することが出来る。
この方法だと、7の場合に限らず、
上と同様の手順で、倍数判定をすることが出来そうです。
ネットでは、13で割ったときの判定法が載っている。
倍数判定法の基本原理として、より一般的と言えるだろう。
(2016年05月28日)