■10進法・100進法・1000進法(その3)

 整数が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の倍数,11の倍数,13の倍数であることの判定法はあるにはあるのだが煩わしいし,一目見てわかるものではない.

===================================

【1】不思議な数1001

 ところで,1001=7・11・13は連続する3つの素数の積になっている不思議な数である.最初のの3つの素数2,3,5では割り切れず,次の3つの素数7,11,13で割り切れる.

 1000=−1(mod7・11・13=1001)

この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)

[1]3桁の数が7の倍数であるためには2a3+3a2+a3が7の倍数になることが必要十分である.

[2]3桁の数が13の倍数であるためには−4a3−3a2+a3が13の倍数になることが必要十分である.

===================================

【2】素数による整除性

[3]奇数番目の桁の数の和と偶数番目の桁の数の和との差が11の倍数のとき,そのときに限り11の倍数である.

 素数7による整除性について補足しよう.与えられた数を

  P=an・10^(n-1)+an-1・10^(n-2)+・・・+a2・10+a1

とする.

[4]1の位の数を除去し,残った数から除去した数の2倍を引く.

  Q=an・10^(n-2)+an-1・10^(n-3)+・・・+a2−2a1

この数が7で割り切れるとき,そのときに限り元の数Pは7で割り切れる.(この数が大きすぎる場合は,この操作を何度でも繰り返すことができる)

 この操作の意味を考えてみると

  P−10Q=21a1=7・3a1

より,7の倍数を元の数から引くことを意味している.したがって,残った数が7で割り切れれば,元の数も7で割り切れることになる.

 元の数の桁が非常に多い場合が下3桁を除去し残りから引くことで処理がずっと高速化される.

  Q=an・10^(n-4)+an-1・10^(n-5)+・・・+a4−(a3・10^2+a2・10+a1)

  P−1000Q=1001(a3・10^2+a2・10+a1)=7・11・13(a3・10^2+a2・10+a1)

この操作の正当性は1001が7で割り切れることからきているのである.

[5]下3桁の数を除去し,残った数から除去した数を引く.この数が7で割り切れるとき,そのときに限り元の数は7で割り切れる.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 素数13による整除性のためには,

[6]1の位の数を除去し,残った数から除去した数の9倍を引く.

  Q=an・10^(n-2)+an-1・10^(n-3)+・・・+a2−9a1

この数が13で割り切れるとき,そのときに限り元の数Pは13で割り切れる.(この数が大きすぎる場合は,この操作を何度でも繰り返すことができる)

 この操作の意味を考えてみると

  P−10Q=91a1=13・7a1

より,13の倍数を元の数から引くことを意味している.したがって,残った数が13で割り切れれば,元の数も13で割り切れることになる.

 元の数の桁が非常に多い場合が下3桁を除去し残りから引くことで処理がずっと高速化される.

  Q=an・10^(n-4)+an-1・10^(n-5)+・・・+a4−(a3・10^2+a2・10+a1)

  P−1000Q=1001(a3・10^2+a2・10+a1)=7・11・13(a3・10^2+a2・10+a1)

この操作の正当性は1001が13で割り切れることからきているのである.

[7]下3桁の数を除去し,残った数から除去した数を引く.この数が13で割り切れるとき,そのときに限り元の数は13で割り切れる.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 素数17による整除性のためには,

[8]1の位の数を除去し,残った数から除去した数の5倍を引く.

  Q=an・10^(n-2)+an-1・10^(n-3)+・・・+a2−5a1

この数が17で割り切れるとき,そのときに限り元の数Pは17で割り切れる.(この数が大きすぎる場合は,この操作を何度でも繰り返すことができる)

 この操作の意味を考えてみると

  P−10Q=51a1=17・3a1

より,17の倍数を元の数から引くことを意味している.したがって,残った数が17で割り切れれば,元の数も17で割り切れることになる.

 以下,

[9]素数19による整除性のためには,1の位の数を除去し,残った数から除去した数の17倍を引く.171=19・9

[10]素数23による整除性のためには,1の位の数を除去し,残った数から除去した数の16倍を引く.161=23・7

[11]素数29による整除性のためには,1の位の数を除去し,残った数から除去した数の26倍を引く.261=29・9

[12]素数31による整除性のためには,1の位の数を除去し,残った数から除去した数の3倍を引く.31=31

===================================