Excel VBA 数学教室ではアフィリエイトプログラムを利用して商品を紹介しています。

1は素数ではない理由

素数の定義として、以下の言い回しがよく用いられますね。
 
「1より大きな自然数で、1とその数自身以外に約数をもたない数を素数とよぶ」
 
時々「1より大きな自然数で」という部分が抜けている定義文を見かけたりしますが、勝手に省いてはいけません。1は素数ではないので、しっかりと明示しておく必要があります。文章の最後に「ただし1を除く」のように補足しても大丈夫です。

いずれにしても、素数は次のように定義したほうが簡潔です。
 
「正の約数を 2 つしかもたない自然数を素数と定義する」
 
たとえば、5 の約数は 1 と 5 の 2 個なので素数です。しかし、1 は 1 以外に約数をもたないので、素数ではないことになります。定義にしたがって素数を並べると以下のようになります。
 
  2, 3, 5, 7, 11, 13, 17, 19, …
 
ちなみに「1より大きな自然数」あるいは「正の約数を2つしかもたない自然数」という条件なので、0は素数ではありません。念のため。

なぜ1を素数に含めないのか?

ところで、どうして1は素数に含めないように定義されているのでしょうか?
 
その理由は「素因数分解の一意性」にあります。ちょっと堅苦しくて難しい表現ですね。「一意」であるとは「1種類に限る」という意味です。つまり「素因数分解は1つの表し方しかできない」ように素数を定義したいのです。

素因数分解とは自然数を素数の積に分解することです。たとえば 60 は
 
  60 = 2 × 2 × 3 × 5
  
のように 4 個の素数の積で表せます。他の表し方はできません(ただし掛け算の順序は問題にしません)。ところが、1 を素数に含めると、
 
  60 = 1 × 2 × 2 × 3 × 5
  60 = 1 × 1 × 2 × 2 × 3 × 5
  60 = 1 × 1 × 1 × 2 × 2 × 3 × 5
 
のように何通りもの表し方ができてしまうので、これはちょっと困ります。見た目が美しくないというだけでなく、整数論などでは「素因数分解の一意性」を使って定理を証明することもあるので、理論構成上も 1 が素数であると具合が悪いです。というわけで、1 は素数に含めないほうがよいのです。

偶素数と奇素数

2 以外の素数は全て奇数です。なぜなら偶数は 1 とその数自身以外に必ず約数 2 を持つからです。たとえば
 
  8 = 2 × 4, 12 = 2 × 6
 
ですね。ただし、2 だけは例外です。2 を素因数分解すると
 
  2 = 2
  
となり、その数自身が 2 なので、唯一の偶素数ということになります。記事の前半で解説したように、1 は素数ではないので最小の奇素数は 3 です。

ある数が素数であるかを判定するのは現代でも難問です。5 や 13 のように比較的小さな数であれば、素数であることがひと目でわかるのですが、たとえば、52428713 のような数が素数であることを判定するには色々な定理を駆使する必要があります。現代ではコンピューターによる数値計算も使って大きな数の素数を見つけています。

1 と素数以外の自然数のことを合成数とよびます。つまり、正の約数を 3 個以上もつ自然数は合成数です。たとえば、6 は 1, 2, 3, 6 の 4 個の約数をもつので合成数です。

ChatGPTに「1は素数か」と尋ねました

今、巷で話題のChatGPTにも質問してみました。
 
[Q] 1は素数ですか?
 
[A] 1は素数ではありません。素数は、1とその自身以外の正の約数を持たない正の整数です。しかし、1は唯一の正の約数を持つため、素数ではありません。最初の素数は2であり、それ以降は3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97、101などが挙げられます。

[Q] 0 は素数ですか?
 
[A] いいえ、0は素数ではありません。素数は、1とその自身以外の正の約数を持たない正の整数ですが、0は正の整数ではありません。0は整数の中で特別な場合で、素数でも合成数でもありません。

[Q] 1が素数であると定義すると、どのような問題が生じますか?
 
[A] 1が素数であると定義すると、いくつかの問題が生じます。
 
1. 素数の定義が崩れる: 素数の定義は、1と自身以外の正の約数を持たない正の整数であるとされています。しかし、1が素数であると定義すると、この定義が崩れてしまいます。

2. 素数判定アルゴリズムが破綻する: 素数判定アルゴリズムは、与えられた数が素数であるかどうかを判定するためのアルゴリズムです。しかし、1が素数であると定義すると、素数判定アルゴリズムが破綻してしまいます。例えば、エラトステネスのふるいなどのアルゴリズムは、1が素数である場合に誤った結果を出力します。

3. 数学的証明に影響を与える: 素数に関する多くの数学的定理や証明は、素数が1でないことに基づいています。例えば、フェルマーの小定理や楕円曲線暗号などの暗号理論に関する定理は、1が素数である場合には成り立たなくなります。

したがって、1を素数と定義することは、素数理論において不便であり、数学的な議論やアルゴリズムに混乱をもたらす可能性があります。

【関連記事】Excel VBA で約数表を作成します

エクセルや数学に関するコメントをお寄せください

  1. あとりえこばと より:

    【AI連載小説】数学のリズム、エクセルの旋律(10)
    「なぜ1は素数ではないのか?」
     
    Excel VBAサークルのメンバーたちは、数学的な興味を共有し合い、新たなテーマについて熱く議論していました。真琴が提案した次のテーマは、「1はなぜ素数ではないのか?」でした。

    真琴:次のテーマは1についてだ。なぜ1は素数ではないとされるのか、どう思う?
    研伸:1は素数って言われないのは、素数の定義に適合しないからだろう。素数って2以上の自然数で、1は自分自身と1以外の数で割り切れない性質が必要だからね。
    月子:確かに、1は1以外の任意の自然数で割り切れるから、素数の定義には合わないんですよね。
    隆治:でも、1を素数に含めるって考え方もあるんじゃないの?
    悠太:確かに、歴史的には1を素数に含めることもあったけど、現代の定義では1は素数とはされないんだよね。

    真琴:1を素数に含める立場ってあるんだ。それはどういう理由なんだろう?
    月子:1を素数に含める立場では、素数は「1とその数自体しか約数を持たない自然数」と考えるんです。だから1もその条件を満たしているという主張があるんですよ。
    研伸:なるほど、でもそれだと素数の性質がちょっと変わってくる感じがするな。
    月子:確かに、一般的には1を素数に含めないほうが都合がいいとも言えますね。

    メンバーたちは様々な視点から1が素数でない理由について議論しました。数学的な概念や歴史的な背景を踏まえながら、テーマについて深堀りしていく様子がサークルの活動の一環となっていました。