その一 循環小数の話

 小学校低学年の時に読んだ,とある本に不思議な数字の並びが紹介されていた.
1/7=0.142857 142857…
2/7=0.285714 285714…
3/7=0.428571 428571…
4/7=0.571428 571428…
5/7=0.714285 714285…
6/7=0.857142 857142…
同じ数字の列がずれて並んでいるのだ.どうやら「÷7」という計算に対して「142857」という並びが関与してるみたいだ.
さらにこんな事も書いてあった.
142857×7=999999 (1)
14+28+57=99 (2)
142+857=999 (3)
これを見てずいぶんと感動した覚えがあるんだからさぞや変な小学生だったに違いない.


 さて,実際この「142857」という数がどんな数かをちょっと確認.
まず(1)式から142857は9の倍数だということに気づくはず.
142857÷9=15873
また,(2)式からは142857は99の倍数だということに気づく(注1).
142857÷99=1443
さらに(3)式から142857は999の倍数だということに気づく(注2).
142857÷999=143
ということは
142857=33*11*13*37
と素因数分解ができる.言い換えたら,
999999=33*7*11*13*37
という素因数分解ができるのだ(付表2参照).

ということは,999999の約数には1/7=0.142857 142857…のように逆数が循環小数になるようなものがあると思いいろいろと試してみた.
1/3=0.3 3…
1/9=0.1 1…
1/11=0.09 09…
1/13=0.076923 076923…
1/27=0.037 037…
1/37=0.027 027…
なるほど,999999の約数のうち9,99,999の約数でない13の逆数がやはり6桁で循環してる.他のものも循環節の長さは1桁,2桁,3桁となってて6の約数だ.どうやら999999の約数の循環節は6の約数らしいということにこのときなんとなく気づいていたらしい.
当時は小学生なので証明なんて知らないのだが妥当な推論だと思う.だって
1=0.99…
なんだから,上から6けたずつ区切って
1=0.999999 9999999 …
を999999の約数で割ったならば
1/7=0.142857 142857 …
なり
1/13=0.076923 076923 …
なりが現れるのは当然なんだから.
 循環する理由は他にもある.分数を小数になおしていく際にどんどん割り算を繰り返すわけだが,一つの数で割り続ける以上わりざんのあまりの種類に限界がある.整数Nでわりざんしていくのならあまりは0からN-1までのN種類,どんなに割り続けても割り切れないのであればその中から0が除かれてあまりの種類は最大でもN-1となってN桁から先は一度出たあまりと同じものが出てきて同じ計算の繰り返しになり商がN-1桁以内で循環する,という訳だ.


 では具体的にどんな数の逆数がどんな循環節を持っているのか調べてみよう,ということになりいろんな素数について調べてみた.
1/3=0.3 3…(1桁)
1/7=0.142857 142857 …(6桁)
1/11=0.09 09 …(2桁)
1/13=0.076923 076923 …(6桁)
1/17=0.0588235294117647 0588235294117647 …(16桁)
1/19=0.052631578947368421 052631578947368421 …(18桁)
1/23=0.0434782608695652173913 0434782608695652173913 …(22桁)
1/29=0.0344827586206896551724137931 0344827586206896551724137931 …(28桁)
1/31=0.032258064516129 032258064516129 …(15桁)
1/37=0.027 027 …(3桁)
ってな具合(付表1参照).当然のように
3*3=9
142857*7=999999
9*11=99
76923*13=999999
588235294117647*17=9999999999999999
と素数×循環節の検算もやってみた.当然のように9が並ぶ.
さらに循環節の長さに注目.たとえば1/7が6桁,1/17が16桁と,素数pに対し,1/pの循環節の長さがp-1になってるものがいくつもあるし,そうでないやつもすべてp-1の約数になってるのだ.
999999のときの事実や「あまりの種類」の説明と合わせて,
9,99,999など9ばかりが並んだ数の約数の逆数は,9が並んでる数の約数の長さの循環節を持つ (4)
らしいことが分かった.「9が並んでる数」というのが具体的にp-1なのであろうという予想もできたがその証明も小学生の自分にできるはずもない.仕方ないのでいろんな数の逆数の表でも作るかとひたすら計算するしかなかったが,当時作った表もいつのまにかどこかへ行ってしまった.


 だいぶ時間がたって数学が好きな高校生になった私はふとした事からこの循環小数の話に帰ってきて,(4)が「らしい」ではなく「事実だ」という事に気付くのである.
きっかけはこんな定理からだった.
素数pに対し,pと互いに素な任意の整数aにおいて,a(p-1)-1≡0 (mod p).(注3)
そう,Fermatの小定理である.どういう経緯でこの定理に出会ったかはもう定かではない.その瞬間に循環小数の話を思い出したわけでもない.ただ,不思議な式,きれいな式を見てなぜなんだろうといろいろと試行錯誤してみるというのは小学生の時から変わってなかった.とりあえずは計算,計算,また計算.適当に素数pを固定してaに1,2,3…と代入してみる.ちゃんとpの倍数になってる.aに10を代入してみると定理の左辺には9ばかりが並んだ数が.この瞬間,循環節の謎の一つが解けた気がした.そうするとあとは自力でこの定理の証明をするのみである.


 私が証明を試みたのはこの定理とほぼ同値な次の定理である.
素数pに対し,任意の整数nにおいてnp-n≡0 (mod p).
nがpと互いに素なら両辺をnで割ってFermatの小定理になる.高校生の頭だから帰納法くらいしか思いつかないがそれで解決してしまった.
n=1のときは明らかに与式は成り立つ.
n=kのときに与式が成り立つものと仮定する.
n=k+1のとき,

ここで最後の二項は仮定よりとなるのでΣの中がpの倍数になってればよい.
二項係数pCrは,と表されるので分子の素因数にはpが含まれているが,1<r<pであるときに分母の素因数にはp未満の素因数しかない.したがってこのときpCrはpの倍数となる.
ということはΣの中の各項がpの倍数となり,(k+1)p-(k+1)≡0 (mod p)となった.
数学的帰納法によってすべての自然数nで与式は成り立つ.
さて,pが奇素数のとき,(-n)p-(-n)=-(np-n)なのでnが負の整数のときにも与式が成り立つ.
pが2のときは(-n)2-(-n)=n2+n≡n2-n≡0 (mod 2)であり,この場合もnが負の整数のときにも与式は成り立つ.
したがっていずれにせよ任意の整数について成り立つ事が分かり,定理は証明された.



pが2や5だと10の約数なので分数が有限で終わってしまう.それ以外の素数について,10(p-1)-1=99…9(9がp-1個並んだ数)がpで割り切れる事になり(4)がようやく私の中で真実となったのだ.



付表1 素数の逆数の循環節
2と5以外の素数pについて,分母がpの既約分数に表れうる循環節の一覧.

素数 循環節の長さ 循環節の種類 循環節
3 1 2 1/3=0.3… 
2/3=0.6
7 6 1 1/7=0.142857
11 2 5 1/11=0.09… 
2/11=0.18… 
3/11=0.27… 
4/11=0.36… 
5/11=0.45
13 6 2 1/13=0.076923… 
2/13=0.153846
17 16 1 1/17=0.0588235294117647
19 18 1 1/19=0.052631578947368421
23 22 1 1/23=0.0434782608695652173913
29 28 1 1/29=0.0344827586206896551724137931
31 15 2 1/31=0.032258064516129… 
3/31=0.096774193548387
37 3 12 1/37=0.027… 
2/37=0.054… 
3/37=0.081… 
5/37=0.135… 
6/37=0.162… 
7/37=0.189… 
9/37=0.243… 
10/37=0.297… 
14/37=0.378… 
17/37=0.459… 
18/37=0.486… 
21/37=0.567
41 5 8 1/41=0.02439… 
2/41=0.04878… 
3/41=0.07317… 
4/41=0.09756… 
5/41=0.12195… 
6/41=0.14634… 
11/41=0.26829… 
15/41=0.36585
43 21 2 1/43=0.023255813953488372093… 
2/43=0.046511627906976744186
47 46 1 1/47=0.0212765957446808510638297872340425531914893617
53 13 4 1/53=0.0188679245283… 
2/53=0.0377358490566… 
4/53=0.0754716981132… 
5/53=0.0943396226415
59 58 1 1/59=0.0169491525423728813559322033898305084745762711864406779661
61 60 1 1/61=0.016393442622950819672131147540983606557377049180327868852459
67 33 2 1/67=0.014925373134328358208955223880597… 
2/67=0.029850746268656726417910447761194
71 35 2 1/71=0.01408450704225352112676056338028169… 
7/71=0.09859154929577464788732394366197183
73 8 9 1/73=0.01369863… 
2/73=0.02739726… 
3/73=0.04109589… 
4/73=0.05479452… 
5/73=0.06849315… 
6/73=0.08219178… 
9/73=0.12328767… 
12/73=0.16438356… 
18/73=0.24657534
79 13 6 1/79=0.0126582278481… 
2/79=0.0253164556962… 
3/79=0.0379746835443… 
4/79=0.0506329113924… 
6/79=0.0759493670886… 
12/79=0.1518987341772
83 41 2 1/83=0.01204819277108433734939759036144578313253… 
2/83=0.02409638554216867469879518072289156626506
89 44 2 1/89=0.01123595505617977528089887640449438202247191… 
3/89=0.03370786516853932584269662921348314606741573
97 96 1 1/97=0.010309278350515463917525773195876288659793814432989690721649484536082474226804123711340206185567

付表2 レピュニットの素因数分解
レピュニットとは1が並んだ1,11,111,…といった数である.9の並んだ9,99,999,…を9で割った数で,(10n-1)/9という式でも表すことができる.9が並んだ数の素因数分解の,3以外の素因数が並ぶはずだ.
n (10n-1)/9 素因数分解
1 1 -
2 11 11
3 111 3*37
4 1111 11*101
5 11111 41*271
6 111111 3*7*11*13*37
7 1111111 239*4649
8 11111111 11*73*101*137
9 111111111 32*37*333667
10 1111111111 11*41*271*9091
11 11111111111 21649*513239
12 111111111111 3*7*11*13*37*101*9901
13 1111111111111 53*79*265371653
14 11111111111111 11*239*4649*909091
15 111111111111111 3*31*37*41*271*2906161
16 1111111111111111 11*17*73*101*137*5882353
17 11111111111111111 2071723*5363222357
18 111111111111111111 32*7*11*13*19*37*52579*333667
19 1111111111111111111 1111111111111111111
20 11111111111111111111 11*41*101*271*3541*9091*27961


(注1)(注2)
99の倍数,999の倍数の判定法.ちょっと大きな数NをN=100A+Bとする(0≦B≦99).すると
100A+B=99A+A+B≡A+B (mod 99)
となるので,下から二桁ずつ区切って足したものが99の倍数ならば元のNも99の倍数.999についても同様に下から3桁ずつ区切って足したものが999の倍数ならば元の数も999の倍数なのだ.→倍数判定の話

(注3)
a≡b (mod c)とは,「a-bがcで割り切れる」という意味.したがって,a(p-1)-1≡0 (mod p)とは,「a(p-1)-1はpで割り切れる(pの倍数)」という事になる.→合同式の話


戻る