「素数の秘密」解答



◆東京都の会社員 DUMMYさんからの解答。


0.初期設定

 循環小数は、循環部分が必ずしも小数点第一位からはじまるとは限りません。例えば、

 
――
=0.166666…

であり、はじめの1は循環の一部ではありません。

このような状況をふまえて、循環の一部ではない箇所の桁数をm桁とおき、値をaとします。

また、循環部分の桁数は偶数であるので、桁数を2n桁とし、前半n桁の値をb、後半n桁の値をcとします。

例えば、循環小数が次のような場合、

  0.123456789456789…

 m,n,a,b,cは次のようになります。

  m=3
  n=3
  a=123
  b=456
  c=789

 当然のことながら、m,n,a,b,cは正の整数となります。
(ただし、n以外は0を含む)

また、b≠cとなります。
b=cでは循環部分がbだけになってしまい、最初の設定にあわなくなるからです。

 さて、ここまで準備をしたところで、循環小数を分数にして表してみると、

 
―――
10m
10n・b+c 
――――――――――
10m・(102n−1)

 となります。
(循環小数を分数にするやりかたは有名なので割愛させていただきます)

 ここで、素数をpとおくと、この式は1/pのことなので、

―――

―――
10m
10n・b+c 
――――――――――
10m・(102n−1)
… (1)

 となります。

1. 10n+1がpで割り切れることの証明

 (1)を変形すると次のようになります。
10m・(102n−1)
――――――――――
=(102n−1)・a+10n・b+c… (2)

 ここで、右辺は整数なので、10m・(102n−1)はpで割り切れることになります。また、

 102n−1=(10n+1)・(10n−1)

 であり、10m、10n+1、10n−1はどれも整数なので、これらは(2)の左辺の分子の約数になります。

ところで、pは素数であるので、
10m、10n+1、10n−1のうちの少なくともどれか一つがpを約数に持つことになります。

 まず、10mがpを約数に持つと仮定してみます。

 10m=2m・5m

 であり、pは素数なので、pが10mの約数となるためには、2または5でなければなりません。しかし、pが2でも5でも、1/pは循環小数にならないので、pは2でも5でもないことになります。
したがって、pは10mの約数ではないことが分かります。

 次に、10n−1がpを約数に持つと仮定してみましょう。
10n−1をpで割ったときの商をdとすれば、

 10n=d・p+1 … (3)

 となります。ところでe、fを正の整数(ただしpより小さい)とすれば、

   10m=a・p+e
 e・10n=b・p+f … (4)
 f・10n=c・p+e … (5)

 となります。(3)の両辺をe倍すると、

 e・10n=d・e・p+e

 となるのですが、eはpより小さいので、この式は、e・10nをpで割ったときの関係式となります。
また、(4)も同じくe・10nをpで割ったときの関係式を表す式なので、それぞれの余りにあたるので、

 f=e

 となります。このことを(4)(5)に代入すると、

 e・10n=b・p+e
 e・10n=c・p+e

 となり、この2式から

 b=c

 となります。しかし、b≠cなので矛盾が生じます。したがって、
10n−1はpで割り切れないことになります。

 10mも10n−1も、pを約数に持たないことが判明したので、この結果
10n+1がpを約数にもつことになります。つまり、

 10n+1はpで割り切れる … (6)

 ことになります。

2.10m・(10n+1)
―――――――――
が(10n+1)・a+b+1であることの証明


 (1)の両辺に10m・10nをかけ、右辺を変形すると次のようになります。
10m・10n
―――――――
=10n・a+b+b+10n・c
――――――――
102n−1
… (7)

 ここで、b+10n・cは循環部分の前後を入れ換えただけなので、最高でも2n桁の整数であり、
また、b≠cなので、102n−1になることもありません。
したがって、2n桁で最大の整数である102n−1以上になることはないので、次のようになります。
0<b+10n・c
―――――――
102n−1
<1

各辺に10n・a+b+10m
――――
を加え、(7)を代入すると、

10n・a+b+10m
――――
10m・(10n+1)
―――――――――
<10n・a+b+1+10m
――――

  … (8)となります。
ところで、10mをpで割ったときの商はaであり、10mはpで割り切れないので、
a<10m
―――――
<a+1

 となります。したがって、(8)とあわせて考えると、
(10n+1)・a+b<10m・(10n+1)
――――――――
<(10n+1)・a+b+2

 となります。
(6)より、10n+1はpで割り切れるので、中辺は整数になるのですが、
この範囲にある整数は(10n+1)a+b+1しかないので、

10m・(10n+1)
―――――――――
=(10n+1)・a+b+1 … (9)

 となります。

3. a+bが999…999になることの証明

 (9)を(1)に代入して、変形すると、

 c=−b+10n−1

 となります。したがって、

 b+c=10n−1

 となります。
ここで、10n−1は9がn桁つづく数字のことですから、b+cはすべての位が9であるということになり、題意が証明されたことになります。

[感想]

 割り切れるかどうかを示すのに背理法を利用することと、範囲内にある整数が一つしかないので、値が一意にきまる、というところに行き着くまでが大変でした。
最初は、連立方程式で解くには、変数の多さに比べ式が少なすぎるということで、素数であるというのを何とかして式表現しようとしたりもしてました。
背理法による証明を思いついたあとも、pが合成数の場合、どれもpを約数にもたなくても、全体を割り切ることもあるいうことに気がつかず、pが素数であるという条件をつかわずに解けてしまったので、素数に限らず成り立つのではないかなんて思ったりもして…。
でもまあ、なんとかここまでたどりつけてほっとしています。
 なお、最初は小数第一位から循環が始まると想定してやっていたため、mやaにあたる変数はありませんでしたし、また、b、cと記載されているものは当初a、bと記述していたので、書き換えそこなっての記述ミスがあるかもしれません。そのさいはご容赦願います。

【コメント】

 すばらしい証明をありがとうございます。
完全に確認した自信はないのですが、証明されていると思います。
宮崎隆行さんにもさっそく知らせてあげようと思います。
どうもありがとうございました。


 素数の秘密へもどる

 数学の部屋へもどる