「素数の秘密」解答



◆大阪府の大学生  河野 進 さんからの解答。

「素数の秘密」について考えた事をお知らせします。

1.準備
次の事は証明なしで利用します。 (1.0) pを2以上の整数とし、a,bを整数とすると (1) abをpで割った余り  =(aをpで割った余り × bをpで割った余り)をpで割った余り。 (2) a+bをpで割った余り  =(aをpで割った余り + bをpで割った余り)をpで割った余り。 以下では、pを素数とします。 (1.1) aをpで割り切れない整数とすると、 整数bが存在してabをpで割ると 1余るようにできる。 証明: 一般にm,nを0でない整数とし2数の最大公約数をgとすると、 整数j,kが存在して mj+nk=g を満たすことがユークリッドの互除法を繰り返し用いることによって 示されると思いますので、その事を証明なしで使わせてもらいます。 この場合、仮定よりaとpの最大公約数は1なので、 上の事から整数b,cが存在して ab+pc=1, ab=−cp+1 を満たします。 これは、abをpで割った商が−cで余りが1である事を表しています。 [証明終わり] (1.2) aをpで割りきれない整数とすると、正整数nが存在して 次の条件(1)、 (2)を満たす。 (1) aをpで割ると1余る。 (2) jを0<j<nとなる整数とすると、aをpで割った余りは1と異なる。 (この様なnをaのpを法とする位数と呼ぶ事にします。) 証明: 集合{aをpで割った余り | jは正整数}は 要素の個数が高々p−1の有限集合なので、 i<jを満たす正整数の組(i,j)が存在して aをpで割った余り=aをpで割った余り となります。 a=aj−iに注意して (1.1)をaに適用して得られる整数をbとすると、 aj−ibをpで割った余り=abをpで割った余り=1 となります。 左辺はaj−iをpで割った余りに等しいので、 この様なj−iの最小値をnとすれば上の条件が満たされる事が分かります。 [証明終わり] (1.3) aをpで割りきれない整数とし、aのpを法とする位数をnとする。 集合S(p)={q | qは0<q<pをみたす整数} に関係〜を q〜r ←→ 非負整数jが存在してq−arがpで割りきれる。 によって定義すると、〜は同値関係となる。 従ってS(p)は同値類に分割されるが、 各同値類はn個の要素からなるS(p)の部分集合となる。 従って、同値類の個数をmとするとp−1=mnとなる。 証明: [同値関係である事の証明] j=0とおけばq〜qとなって反射律が示されます。 q〜rとすると非負整数jが存在してq−arが 従ってar−qがpで割りきれます。 このjに対して正整数iを十分大きくとればni≧jとなります。 この時ni−jは非負整数で (ar−ani−jq=ani−j(ar−q) がpで割りきれます。 上の等式の左辺をpで割った余りは r−ani−jqをpで割った余りと等しいので r〜qとなって対称律が示されます。 q〜rかつr〜sとすると 非負整数j,kが存在してq−arとr−asがpで割りきれます。 この時j+kは非負整数で q−ar+a(r−as)=q−aj+ks がpで割りきれるのでq〜sとなって推移律が示されます。 [各同値類はn個の要素からなるSの部分集合となる事の証明] Sの各要素qに対してqを含む同値類をS(p,q;a)と表す事にします。 この時q〜rであれば S(p,q;a)=S(p,r;a)となります。 先ずS(p,1;a)の要素の個数がnである事を示します。 そのために、(1.2)より下式の右辺は1を含むので、 S(p,1;a)={aをpで割った余り | jは正整数} となる事に注意します。 (1.2)より  {aをpで割った余り | jは正整数} ={aをpで割った余り | jは0≦j<nを満たす整数} となる事からS(p,1;a)の要素の個数がn以下である事が分かります。 i,jを0≦i≦j<nを満たす整数とし aをpで割った余り=aをpで割った余り とすると 0≦j−i<nでaj−ipで割った余り=1となるので (1.2)の条件(2)よりj−i=0 つまりi=jでなければならない事が分かります。 この事は S(p,1;a)の要素の個数が丁度nである事を示しています。 次に各同値類S(p,q;a)に対して S(p,1;a)との間の1対1対応の存在を示す事によって S(p,q;a)の要素の個数がnである事を確かめます。 写像f:S(p,1;a)→S(p,q;a)を f(k)=kqをpで割った余り で定義します。 また、qはpで割りきれないので (1.1)より整数sが存在してqsをpで割った余りが1となります。 この様なsを1つ固定して、 写像g:S(p,q;a)→S(p,1;a)を g(r)=rsをpで割った余り で定義します。 kがS(p,1;a)の要素であればk〜1、 従って非負整数jが存在してk−aがpで割りきれます。 この時kq−aqが従ってf(k)−aqがpで割りきれます。 つまりf(k)〜qとなりf(k)は S(p,q;a)の要素です。 逆にrがS(p,q;a)の要素であればr〜q、 従って非負整数jが存在してr−aqがpで割りきれます。 この時 rs−aqsが従ってg(k)−aがpで割りきれます。 つまりg(k)〜1となりg(k)はS(p,1;a)の要素です。 この様にf,gが定義可能である事が分かります。 (1.0)とsの選び方より g(f(k))=k 及び f(g(r))=r が任意のk,rについて成り立つことが分かります。 即ち、g・f,f・gは 各々S(p,1;a),S(p,q;a)上の恒等写像である事が分かります。 この事はf及びgが全単射である事を示しています。 [証明終わり] (1.4) aをpで割りきれない整数とし、 aのpを法とする位数nが偶数であったとしn=2mとする。 この時aをpで割った余りはp−1となる。 証明: 仮定よりa2m−1=(a−1)(a+1)はpで割り切れます。 pは素数なのでa−1とa+1の内少なくとも一方がpでわりきれますが、 a−1がpで割り切れるとすると aのpを法とする位数がmの約数である事になって aのpを法とする位数が2mであるという仮定に矛盾します。 従ってa+1がpで割り切れます。 即ちaをpで割った余りはp−1となります。 [証明終わり] 2. q/pの小数表示 pを2及び5と異なる(10の因数でない)素数とします。 qを0<q<pを満たす整数とします。 数列b(q,p;i)(iは0以上の整数)と 数列a(q,p;i)(iは正整数)を次のように定義します。 (2.1)b(q,p;0)=q, b(q,p;i+1)=10b(q,p;i)をpで割った余り(0≦i). (2.2) a(q,p;i)=10b(q,p;i−1)をpで割った商(1≦i). この時、次の性質があります。 (2.3)(1) 0≦b(q,p;i)<p (0≦i). (2) b(q,p;i)=10qをpで割った余り (0≦i). (3) 0≦a(q,p;i)<10 (1≦i). (4)a(q,p;i)=q/pを小数で表した時の小数点後第i位の数(1≦i). 証明: (1)と(4)は定義の仕方から直接従います。 (3) (1)より、iを1以上の整数とすると 0≦b(q,p;i−1)<p. 従って (*) 0≦10b(q,p;i−1)<10p. 定義(2.1)、(2.2)より (**) 10b(q,p;i−1)=pa(q,p;i)+b(q,p;i) が成立します。 (**)を(*)に代入して(1)を用いると −p<pa(q,p;i)<10p. 即ち −1<a(q,p;i)<10. a(q,p;i)は整数値なので(3)が得られます。 (2) i=0に対して(2)は明かです。 i=kに対して(2)が正しいと仮定します。 この時10q−b(q,p;k) 従って10k+1q−10b(q,p;k)はpで割り切れます。 即ち10k+1qをpで割った余りと 10b(q,p;k)をpで割った余りが等しい事が分かります。 定義(2.1)より、これは(2)がi=k+1に対して正しい事を示しています。 iに関する数学的帰納法によって(2)が得られます。 [証明終わり] 以下では10のpを法とする位数をnとします。 この時、(1.3)と(2.3)(2)より b(q,p;i)はiの変化と共にS(p,q;10)を周期nで巡回し、 特に (2.4) b(q,p;i)=b(q,p;n+i) が全ての非負整数iに対して成り立つ事が分かります。 従って定義(2.2)より (2.5) a(q,p;i)=a(q,p;n+i) が全ての正整数iに対して成り立つ事が分かります。 従って(2.3)(4)よりq/pを小数で表した時の循環部分は 小数点第1位から始まり循環節の長さはnの約数である事が分かります。 実は (2.6) q/pを小数で表した時の循環節の長さはnになる。 証明: 循環節の長さをkとすると 上の事からkはnの約数なので1≦k≦nを満たします。また、 (*) a(q,p;i)=a(q,p;k+i) が全ての正整数iに対して成立します。定義(2.1)、(2.2)より (**) a(q,p;k+i)=a(b(q,p;k),p;i) が全ての正整数iに対して成立します。(*)、(**)より (***) a(q,p;i)=a(b(q,p;k),p;i) が全ての正整数iに対して成立します。 (2.3)(4)より、(***)は2つの有理数 q/pとb(q,p;k)/pの小数表示が完全に一致する事を意味します。 従って q/p=b(q,p;k)/p, q=b(q,p;k) が得られます。 (2.3)(2)より、これはq−10q=q(1−10)が pで割り切れる事を意味します。 qはpより小さい正整数なのでpで割り切れません。 従って1−10がpで割り切れる事が分かります。 つまり、10をpで割った余りは1となります。 10のpを法とする位数がnなのでn≦kでなければなりません。 この証明の最初に示した不等式と併せてk=nが得られます。 [証明終わり] (1.3)をa=10に対して適用して決まるS(p)の同値類に付いて考えます。 q,rをS(p)の同じ同値類に含まれる要素とします。 つまり S(p,q;10)=S(p,r;10) と仮定します。 この時、非負整数kが存在してq−10rがpで割り切れます。 (10−1はpで割り切れるので0≦k<nと仮定する事ができます。) (2.3)(2)より、b(r,p;k)=qと成ります。定義(2.1)より b(q,p;i)=b(r,p;k+i) が全ての非負整数iに対して成り立つ事が分かります。 従って定義(2.2)より a(q,p;i)=a(r,p;k+i) が全ての正整数iに対して成り立つ事が分かります。 従って(2.3)(4)よりq/pの小数表示は r/pの小数表示に於て小数点後のk桁を省いて作った小数と成る事が分かります。 言い替えればq/pの小数表示の循環節はr/pの小数表示の循環節に於て k+1番目の桁が先頭に成るように循環させて作ったものになります。 逆に、kを0≦k<nを満たす整数とし、 q/pの小数表示の循環節がr/pの小数表示の循環節に於て k+1番目の桁が先頭に成るように循環させて作ったものに一致したと仮定します。 この時、(2.3)(4)より (*) a(q,p;i)=a(r,p;k+i) が全ての正整数iに対して成り立つ事が分かります。 定義(2.1)、(2.2)より (**) a(r,p;k+i)=a(b(r,p;k),p;i) が全ての正整数iに対して成立します。(*)、(**)より (***) a(q,p;i)=a(b(r,p;k),p;i) が全ての正整数iに対して成立します。 (2.3)(4)より、(***)は2つの有理数 q/pとb(r,p;k)/pの小数表示が完全に一致する事を意味します。 従って q/p=b(r,p;k)/p, q=b(r,p;k) が得られます。 (2.3)(2)より、これはq−10rがpで割り切れる事を意味します。 これはqとrが同じ同値類に含まれている事を示しています。つまり S(p,q;10)=S(p,r;10) が成立します。以上をまとめて (2.7) 集合S(p)に関係〜を q〜r ←→ 0≦k<nを満たす整数kが存在して、 q/pの小数 表示の循環節がr/pの小数表示の 循環節に於てk+ 1番目の桁が先頭になるように 循環させて作ったもの に一致する。 によって定義すると〜=〜10となる。 従って(1.3)より〜は同値関係で同値類の個数は(p−1)/nとなる。 (2.8) 10のpを法とする位数nが偶数2mである時、 0<q<pを満たす整数qについて、q/pの小数表示で 小数点後第i位の数と小数点後第m+i位の数を加えると 9になる。 証明: (2.3)(2)より 10q−b(q,p;i−1)と10m+iq−b(q,p;m+i−1) は共にpで割り切れます。従って 10m+iq−b(q,p;m+i−1)−10(10q−b(q,p;i−1)) =10b(q,p;i−1)−b(q,p;m+i−1) もpで割り切れます。 (1.4)より、10+1はpで割り切れるので、 (*) b(q,p;i−1)+b(q,p;m+i−1) もpで割り切れます。 (2.3)(1)より(*)の値は0以上2p−2以下なのでpに等しい事が分かります。 つまり (**)(1) b(q,p;m+i−1)=p−b(q,p;i−1) となります。同様に (**)(2) b(q,p;m+i)=p−b(q,p;i) となります。 定義(2.1)、(2.2)より (***)(1) 10b(q,p;i−1)=pa(q,p;i)+b(q,p;i) となります。同様に (***)(2) 10b(q,p;m+i−1)     =pa(q,p;m+i)+b(q,p;m+i) となります。(**)、(***)より  pa(q,p;m+i)+p−b(q,p;i) =10p−pa(q,p;i)−b(q,p;i), 即ち a(q,p;m+i)=9−a(q,p;i) となります。(2.3)(4)より、これは(2.8)を意味します。 [証明終わり]


以上、紛らわしい表現や誤りも多いかと思いますが、また文字や記号の使い方に不適当な事が多いと思いますが、読んで頂ければ嬉しいです。
この問題を考えるのは楽しかったです。
(2.7)は「素数の秘密2」の命題と同じだと思っています。
(2.8)の証明は、「素数の秘密1」の命題の別証明になると思っています。
aを素数pで割り切れない2以上の整数とした時、1/pのa進法による小数表示についても同様の事が成り立つと証明できると思います。


 素数の秘密へもどる 素数の秘密2へもどる

 数学の部屋へもどる