素数とは、2,3,5,7,11,・・・のように1とその数自身以外に約数をもたない数のことで、プロ・アマを問わず数学者たちを魅了し続けてきました。整数論の発展は素数なしには望めなかったといっても過言ではないでしょう。
1.素数定理
素数の分布は不規則かつ複雑で未知の部分が多いのですが、18世紀から19世紀にまたがって活躍したガウスは、「素数はどのような規則で現れるか」ということを考え、素数定理を予想しました(1792年:ガウスは当時15才であった)。素数定理とは、
π(x)〜x/logx (x→∞)
というものです。ここで、π(x)は任意の整数xを越えない素数の個数を表すものとします。素数定理は、xを超えない素数の個数を与える近似的な公式ですが、”〜”記号は漸近的に等しい、すなわちxが十分大きいとき両者の比が1に近づくという意味であって、両者の差がなくなるという意味ではありません(→【補】)。いいかえれば、この近似式の絶対誤差はxの増大とともに増大するが、相対誤差は減少する、つまり、左辺と右辺の比はxを∞にすると極限が存在して0でも無限大でもなく、1に収束する、
π(x)/(x/logx)〜1 (x→∞)
ということです。xに近い2つの連続した素数間の平均距離はおよそlogxだといってもよいでしょう。
1850年に、ロシアの数学者チェビシェフは任意の数nと2nの間には少なくとも一つの素数pが存在する(n<p≦2n)、同じことですが素数pの次の素数は2pより小さい(pk+1
<2pk )という定理を発見しました。この証明の発見は彼が実に18才のときだったそうですから、「栴檀は双葉よりの芳し」の諺のごとくです。チェビシェフの定理によって、素数の分布には何らかの秩序が存在していることになります。さらに、チェビシェフは1852年に、十分大きなxについてπ(x)/(x/logx)が0.92129と1.10555の間にあるという結果を得ています。この結果を得るためにチェビシェフは、オイラーによって1740年に考案されたゼータ関数(のちにリーマンがこの名前を付けた)を利用しました。
素数定理は、ガウス以降、多くの数学者たちが証明できなかった難問でしたが、ガウスの予想から約100年後の1896年、フランスの数学者アダマールとプーサンは、同じ年に独立に、リーマンによって複素数まで拡張されたゼータ関数を用いてガウスの素数定理を証明しました。
その後、長い間、素数定理の証明には複素解析的な方法を使用することが避けられないと信じられていましたが、1949年、フィールズメダリストのセルバーグとさすらいの数論家エルデスは独立に複素解析関数の理論を使わない初等的な方法で素数定理を証明し、当時の数学界を大いに驚嘆させました。セルバーグはこの功績によりフィールズ賞(4年に一度開かれる世界数学者会議で数学の著しい研究に対して与えられる賞で、数学界のノーベル賞ともいうべきものである)を受賞していますが、エレガントで独創的な解をもつ問題を探し当てることができる数学者が優れた数学者ということなのでしょう。
素数定理をエラトステネスのふるいという初等的な方法を用いて、ラフなスケッチ程度に誘導してみましょう。xまでのすべての整数うちで、奇数、すなわち2で割れない数は大体半分(1−1/2)あります。奇数のうちで、3で割り切れない数は2/3=1−1/3あります。さらに、残っている数のうち、5で割り切れない数は1−1/5あります。したがって、xを越えない素数の個数はこれらの積をすべての素数pにわたってとればよいことになり、近似的に
Π(1−1/p)・x
に等しくなります。さらに、Π(1−1/p)は近似的に1/logxに等しくなります。ただし、これを証明するのは微積分を使っても容易ではありません。専門的で、ここで説明することはできそうにありませんから、天下り式に結果だけを示しておきます。このことを認めれば、素数定理π(x)〜x/logxが導出されたことになります。
さらに、素数定理にはもっとうまい近似法があります。素数の密度関数はπ(x)/xですから、
π(x)/x〜1/logx (x→∞)
です。1/logxが1からxまでの平均的な素数の密度と考えられますが、これをxの近くの素数の密度と考え、区間[1,x]を小区間に区切って積分してみます。
Li(x)=2xdt/logt
Li(x)は積分対数関数と呼ばれますが、π(x)をx/logxで近似するより、対数積分を用いたLi(x)の近似はさらに適切な素数分布の近似式になっています。
素数が無限に存在すること・浮Qが無理数であることは、ギリシア数学のなかでも有名な定理です。それぞれユークリッドとピタゴラスが背理法を用いて証明していますが、その証明はだれしもが容易に理解できるものです。同様に、調和級数Σ(1/n)が無限大に発散すること
1/1+1/2+1/3+・・・=∞
も容易に示すことができます。それでは、素数の逆数の和
Σ(1/p)=1/2+1/3+1/5+1/7+1/11+・・・
は有限でしょうか?
(証明)
調和級数1/1+1/2+1/3+・・・は、オイラー積表示するとΠ(1−1/p)-1と書けますから、
Π(1−1/p)-1〜∞。
また、logΠ(1−1/p)=Σlog(1−1/p)。1/pが非常に小さいとき、マクローリン展開より、Σlog(1−1/p)〜−Σ(1/p)ですから、Σ(1/p)=∞になります。したがって、すべての素数の逆数の和は発散することが示されます。調和級数Σ(1/n)は発散し、また、オイラー級数Σ(1/n2
)=π2 /6で収束しますから、素数は平方数ほどまばらには分布していないことがわかります。
さらに、このことを詳しく調べると、
Σ(1/p)〜log(logx) (pはp≦xの素数を動く、証明略)
などがわかってきます。log(logx)は1/(xlogx)の原始関数です。
Σ(1/p)はxに近い整数について、その素因数の個数の近似値を与えるもので、ハーディーとラマヌジャンにより明らかにされています。インド生まれの数学者ラマヌジャンは、多くの公式や定理を発見し、神秘的な東洋の天才数学者とよばれていて、1日1つの割合で新しい公式または定理を発見したといわれています。ラマヌジャンは、素数と同じくらい風変わりな数として高次合成数の性質について探求しています。合成数とは素数でない数のことで、高次合成数とは24のように1,2,3,4,6,8,12,24と多くの約数をもつ数のことです。ラマヌジャンについてはカニーゲル「無限の天才」(工作舎)をおすすめします。なお、これらの式から
Σlog(1−1/p)〜−log(logx)
がでますが、両辺の指数をとると前にあげた
Π(1−1/p)〜1/logx
が得られます。
ガウスによって基礎づけられ、これらの数学者たちが磨き上げた素数定理はいまのところ不十分かつ不完全で、所詮、概算にすぎません。どれくらい速くこの比が1に近づくのかを特定できないし、ましてやある数まで数えてゆく間にいくつ素数があるのかを正確に教えてくれはしません。そのような精密な公式があれば素数定理より断然優ることはいうまでもありません。
2.素数生成式
Fn =22^n+1の形の素数をフェルマー素数といいます。F0
=3,F1 =5,F2 =17,F3
=257,F4 =65537257は素数であることがわかります。フェルマーはこの型の数がすべて素数だと勘違いしていて必ず素数を与える式として考え出されたのですが、n=5であっけなく破綻してしまいました(F5
=22^5+1=4294967297=641×6700417)。この間違いを発見したのはフェルマーから約100年後のオイラーです。彼は約数641をあてずっぽうでみつけたのでも、2,3,5,7,・・・と割っていって執念で見つけたのでもありません。オイラーはFn
が合成数であるならば、それはあるkに対してk2n+2 +1であることを知っていて、F5
の中の因数641=5・27 +1を見つけたのです。現在、n=0,1,2,3,4の5個以外にフェルマー素数はみつかっていません。
また、オイラー自身、素数をかなりの確率で生成する公式n2
+n+41を発見しています。この公式はn=0のとき素数41、n=1で素数43、n=2で素数47を与えます。このようにしてnが0から39までのどのnをとってもオイラーの公式はすべて素数を与えます。オイラーの公式はn=40で1681=412
となって破綻しますが、1000万以下のnに対して47.5%の確率で素数を生成します。この事実を確認するのは簡単ですが、しかしオイラーはどうやってこんな事実を見つけだしたのでしょうか。また、そうなる真の理由は何でしょうか。
ウラムは自然数を四角いらせん状に配列させるとn2 +n+41型の素数の多くはその対角線上に分布していることを確認しました。ランダムに分布しているように見える素数が四角い渦巻きの対角線上に規則的に分布していたことは驚くべきことです。ウラムは、また、1000万以下のnに対して4n2
+170n+1847が46.6%、4n2 +4n+59が43.7%の確率で素数を生み出すことを突き止めています。
オイラーの公式n2 +n+41のnをn−1に変換すればn2 −n+41、n−40に変換すればn2 −79n+1601が与えられます。1変数の2次多項式ではn2 +n+17や2n2 +29なども高い確率で素数を生成します。それでは、多変数の高次多項式ではどうでしょうか。1971年、旧ソ連のマチアセビッチは、素数全体をあるひとつのディオファントス方程式の解として表すことにも成功しています。すなわち、すべての素数をつくる式を生み出したことになるのですが、その式は37次で24個の変数をもつ多項式と21次で21個の変数をもつ多項式でした。これらの多項式は負の値もとり、また、素数は多項式の値として繰り返し出現します。
すべての素数をもれなくつくり、しかも素数以外はつくらない公式は知られていません。素数を完全に定義する式が存在することは証明されていませんし、存在しないともわかっていません。
3.素数判定法
初項1,第2項1から始まり、隣り合う2項の和が次の項となる数列
1,1,2,3,5,8,・・・
をフィボナッチ数列とよびます。その一般項Fn は、Fn =Fn-1 +Fn-2 で
Fn =1/浮T[{(1+浮T)/2}n −{(1−浮T)/2}n ]
=1/浮T{φn −(−1/φ)n }
(F0 =0:φ=(1+浮T)/2)
と表すことができます。この式は1765年にオイラーが初めて発表したものですが、みんなに忘れられていてそれを再発見したビネにちなんでビネの公式(1843年)と命名されています。整数の数列に無理数である浮Tや黄金比φが出現する不思議に驚かれた経験をお持ちの方の少なくないでしょう。nが大きくなるほど{(1−浮T)/2}n
は0に近づきますから、この項を無視するとフィボナッチ数列は黄金比を公比とする等比数列に次第に近づくことになります。
また、フィボナッチ数列の各項はパスカルの三角形の対角線上の数の和に一致しています。この他にもフィボナッチ数は多くの性質をもっていて、以下にいくつか紹介しておきます。
Fn ・Fn+2 =Fn+12−(−1)n
F1 +F2 +F3 +・・・+Fn =Fn+2 −1
F1 +F3 +F5 +・・・+F2n-1=F2n
F2 +F4 +F6 +・・・+F2n=F2n+1−1
F12+F22+F32+・・・+Fn2=Fn
・Fn+1
この数列にフィボナッチ(13世紀のイタリアの数学者でピサのレオナルドとしても知られる)の名を冠したのはフランスの数学者リュカで、ハノイの塔の名で知られる2進法のパズルも1883年にリュカによって考案されたものです。 初項1,第2項3のフィボナッチ数列
1,3,4,7,11,18,・・・
は彼にちなんでリュカ数列と呼ばれています(1877年)。リュカ数列の一般項Ln は、
Ln ={(1+浮T)/2}n +{(1−浮T)/2}n
={φn +(−1/φ)n }
(L0 =2:φ=(1+浮T)/2)
で表され、Ln =Fn-1 +Fn+1
の関係があります。リュカ数列はフィボナッチ数列と同じ漸化式をもち、連続する2つの項の比は黄金比に近づきます。
さらに、1つの項の和がその前の3つの項の和になっているFn =Fn-1 +Fn-2 +Fn-3 で定義される数列
1,1,1,3,5,9,17,・・・
は、フィボナッチ数列の拡張とみなせるので、フィボナッチ(Fibonacci)をもじってトリボナッチ(Tribonacci)数列と呼ばれます。
2n −1の形の数が素数であるためにはnが素数であることが必要条件です。一方、2n +1の形が素数であるためにはn=2m の形であることが必要です。しかし、このことは十分条件ではなく、指数nがどんな数のとき2n −1,2n +1が素数になるかはいまだに解決されていません。
添字に2n をもつリュカ数列{L2^n}、すなわち、3,7,47,2207,4870847,・・・では、漸化式L2^(n+1)=(L2^n)2
−2が成り立ちますが、この漸化式とフェルマーの小定理(もしpが素数であれば、任意の整数aに関してap
−aはpの倍数である。1640年)を応用した素数判定法がリュカテストです。
リュカはフィボナッチ数列、リュカ数列を用いてメルセンヌ数(2n
−1)が素数であるかどうかを判定し、(2127 −1)が素数であることを示しています(1876年)。この数は12番目のメルセンヌ素数で、1952年の13番目(2521
−1)からはコンピュータによる発見ですから、コンピュータを使わずに見つけられた最大のメルセンヌ素数になっていて、わかっている最大の素数として最長不倒記録を保ち続けました。1994年、アメリカのスーパーコンピュータ、クレイによって発見された258716桁の巨大な素数(2859433−1)は現在知られている最大の素数(33番目のメルセンヌ素数)ですが、リュカテストはメルセンヌ数が素数であるか否か判定する非常に能率的なアルゴリズムとなっていて、リュカテストの効率のよさのおかげで最近の素数の世界記録はすべてメルセンヌ素数が独占しています。
なお、フェルマー数(22^n+1)に対してはリュカテストと同じくらい能率的なペパンの素数判定法があり、コンピュータを使って6番目のフェルマー素数の探索が続けられているのですが、はたして本当に存在するのでしょうか(→【補】)。リュカやペパンの素数判定法によってある数が合成数とわかってもそれを素因数分解するのはとても大変な作業になります。現在、巨大な整数の素因数分解に楕円曲線法とか平方ふるい法とか能率のよい素因数分解法が考え出されています。
【補】スターリングの公式
数列{an }と{bn }がともに無限大に発散し、差{an −bn }は無限大に発散するが、比{an /bn }は1に近づくという例に、階乗n!の近似値を与える公式として有名なスターリングの公式があります。
n!〜普i2πn)nn e-n
スターリングの公式ではnが大きくなるほど相対誤差は小さくなります。スターリングの公式を誘導してみましょう。
logn!=log1+log2+・・・+logx
=Σlogx
ここで、y=logxのグラフを幅が1の長方形に分割していくと、xが十分大きければ相対的に和の間隔が小さくなるので、和は積分に置き換えられます。
Σlogx睡1xlogtdt
logxの原始関数は置換積分よりxlogx−x+Cと計算されますから、右辺はxlogx−x+1となります。したがって、
n!垂nn e-n
が得られます。もっと正確に近似すると
1xlogtdt
=log1+log2+・・・+logx−1/2logx+δ
であること、また、
ワリスの公式:父ホ〜(n!)2 22n/(2n)!浮
より、結局、
n!〜普i2πn)nn e-n
になります。スターリングの近似公式は階乗の一般化であるガンマ関数の近似値としても使われています。
Γ(x+1)=窒-ttx dt〜普i2πx)xx
e-x
【補】フェルマー数
フェルマー数は簡単な漸化式Fn =(Fn-1 −1)2 +1を満たしています。この式からFn −2=Fn-1 (Fn-1 −1)=・・・=F0 F1 ・・・Fn-1
言い換えれば、Fn −2はそれより小さいすべてのフェルマー数で割り切れることがわかります。