素数は、整数を素因数分解したときに出てくる、いわば「自然数を作る基本」になるものだと考えられます。
このような観点から、人々は昔々から素数に魅了されてきました。(余談ですが、現代数学においても「そのまま考えるのが難しい問題を『各素数に関係する状況に分解して』考える」という手法は大変よく使われます。)
ここで最初に疑問に感じることは
Q. 素数はどのくらい存在するの?
これに対する答えは
A. 無限に存在する
というものですが、証明は紀元前から知られていて、背理法のお手本のようなものですので以下に示しておきます。
証明. 「素数の数が有限であり、それを小さい順に
P1 P2 P3 P4 .... .... Pn (*)
と並べられた」と仮定しましょう。このとき、これら全ての積に1を加えた数
P1P2P3....Pn+1 (**)
は(*)のどの素数でも割り切ることが出来ないため素因数として1と自分自身しか持たず、したがって素数になるはずですが、(**)は(*)のいずれの素数よりも大きな数であるため、全ての素数を並べたとする最初の仮定に反します。したがって、背理法によって「素数は無限に存在する」。(証明終)
素数は無限にあるので素数を全部並べるのは無理ですが、代わりに次のような質問をすることは可能です。
Q1(a). 素数全体はどのように分布しているのか?
これについては有名な素数定理があります。
素数定理は「1つ1つの素数の振る舞いはよく分からないけど、全体としては秩序のある振る舞いをしているのだ」と解釈することも出来るわけですが、もう少し1つ1つの素数が具体的に見えるようにしたいものです。
そこで以下のような質問を考えてみます。
Q1(b). n番目の素数を求める関数f(n)は存在するのか?
これは「nに大きな値をどんどん入れてしまえば、いくらでも大きな素数の値を『具体的に』得ることが出来る」ことを意味していますが、もしこんな関数が出来たら凄いことです。
実際には「現在までに知られているよりもさらに大きな素数が発見されました」というのがニュースになっていることからも分かるように、答えは
A1(b). 存在しない。
その代わりと言ってはなんですが、例えば質問
Q2(c). 値が必ず素数になるような関数は存在するのか?
に対する答は肯定的で
A2(c). 存在する。
となります。
例えば、関数g(n)をg(n)≡2(n!) mod (n+1)かつ0≦g(n)≦nを満たすような数としてf(n)=2+g(n)とおけば、これが求める性質を満たす関数になることが分かります。(ウィルソンの定理から出てきます。)しかも、この関数は適当にnの値をとれば全ての素数が関数の値として出てくることが分かります。
n |
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
g(n) |
0
|
0
|
1
|
0
|
3
|
0
|
5
|
0
|
0
|
0
|
9
|
0
|
11
|
0
|
0
|
0
|
15
|
f(n) |
2
|
2
|
3
|
2
|
5
|
2
|
7
|
2
|
2
|
2
|
11
|
2
|
13
|
2
|
2
|
2
|
17
|
すなわち、f(n)≠2であるようなf(n)の値のみに注目すれば、素数の単調増加列が得られます。
ネット上の参考文献としては、例えば以下を挙げておきます:
Formula for primes(wikipedia)