エディックスン-レフラム素数判定法は、素数を判定するアルゴリズムの1つです。素数とは、1と自分自身以外の正の整数で割り切れない数のことを指します。素数は、暗号技術や数学的に重要な問題解決に利用されるため、素数判定のアルゴリズムは広く研究されています。
エディックスン-レフラム素数判定法は、1949年にハンス・エディックスンとマルコム・レフラムによって発表されました。このアルゴリズムは、計算量が少なく、素数である確率が非常に高いため、素数判定のアルゴリズムとして広く用いられています。
エディックスン-レフラム素数判定法の手順
エディックスン-レフラム素数判定法は、以下の手順で素数を判定します。
具体例
例1: n=23の場合
- 判定する数をn=23とする。
- 2から√23≈4.8までの数で、nが割り切れる数があるかどうかを調べる。 2, 3, 4で割り切れないため、n=23は素数である。
例2: n=27の場合
- 判定する数をn=27とする。
- 2から√27≈5.2までの数で、nが割り切れる数があるかどうかを調べる。 2, 3で割り切れるため、n=27は素数ではない。
例3: n=101の場合
- 判定する数をn=101とする。
- 2から√101≈10.05までの数で、nが割り切れる数があるかどうかを調べる。 2, 3, 4, 5, 6, 7, 8, 9, 10で割り切れないため、n=101は素数である。
以上のように、エディックスン-レフラム素数判定法は、2から√nまでの数で割り切れるかどうかを調べることによって、素数であるかどうかを判定します。
まとめ
この手順で判定することによって、素数である確率が非常に高くなります。ただし、この手順でも、大きな素数を判定する場合は計算量が非常に大きくなるため、より高速なアルゴリズムが必要になります。
Pythonでエディックスン-レフラム素数判定法を実装する方法は、下記の記事を参考にしてください。
この他の素数判定法についてもまとめています。