エディックスン-レフラム素数判定法の易しい解説

エディックスン-レフラム素数判定法は、素数を判定するアルゴリズムの1つです。素数とは、1と自分自身以外の正の整数で割り切れない数のことを指します。素数は、暗号技術や数学的に重要な問題解決に利用されるため、素数判定のアルゴリズムは広く研究されています。

エディックスン-レフラム素数判定法は、1949年にハンス・エディックスンとマルコム・レフラムによって発表されました。このアルゴリズムは、計算量が少なく、素数である確率が非常に高いため、素数判定のアルゴリズムとして広く用いられています。

エディックスン-レフラム素数判定法の手順

エディックスン-レフラム素数判定法は、以下の手順で素数を判定します。

  1. 判定する数をnとする。
  2. 2から√nまでの数で、nが割り切れる数があるかどうかを調べる。
  3. nが割り切れる数があれば、nは素数ではない。
  4. nが割り切れる数がなければ、nは素数である。

具体例

例1: n=23の場合

  1. 判定する数をn=23とする。
  2. 2から√23≈4.8までの数で、nが割り切れる数があるかどうかを調べる。 2, 3, 4で割り切れないため、n=23は素数である。

例2: n=27の場合

  1. 判定する数をn=27とする。
  2. 2から√27≈5.2までの数で、nが割り切れる数があるかどうかを調べる。 2, 3で割り切れるため、n=27は素数ではない。

例3: n=101の場合

  1. 判定する数をn=101とする。
  2. 2から√101≈10.05までの数で、nが割り切れる数があるかどうかを調べる。 2, 3, 4, 5, 6, 7, 8, 9, 10で割り切れないため、n=101は素数である。

以上のように、エディックスン-レフラム素数判定法は、2から√nまでの数で割り切れるかどうかを調べることによって、素数であるかどうかを判定します。

まとめ

この手順で判定することによって、素数である確率が非常に高くなります。ただし、この手順でも、大きな素数を判定する場合は計算量が非常に大きくなるため、より高速なアルゴリズムが必要になります。

Pythonエディックスン-レフラム素数判定法を実装する方法は、下記の記事を参考にしてください。

pydocument.hatenablog.com

この他の素数判定法についてもまとめています。

pydocument.hatenablog.com

pydocument.hatenablog.com