扉素数を判定する為のちょっとしたアイデア（ベータ版）
著者：茜町春彦
対象読者：整数論（素数）に興味のある人１ページ《はじめに》
与えられた数が素数であるかどうかを判定するための素数判定式を考案したので紹介します．
ただし、２と３は判定できません．取り敢えず、この二つの素数は例外とします．まあ、今更２と３が素数かどうかを考えても特に意味はなさそうなので、本質的な問題はないと思っています．
《素数判定する前の準備、その１》
まず自然数を下記のように、６つのグループに分けます．
Ｐ＝６ｎ＋１
Ｐ＝６ｎ＋２Ｐ＝６ｎ＋３
Ｐ＝６ｎ＋４
Ｐ＝６ｎ＋５Ｐ＝６ｎ＋６Ｐは自然数です．ｎは０以上の整数です．
すると、
Ｐ＝６ｎ＋２は、２の倍数なので全て合成数です．ただし、２は例外とします．
Ｐ＝６ｎ＋３は、３の倍数なので全て合成数です．ただし、３は例外とします．
Ｐ＝６ｎ＋４は、２の倍数なので全て合成数です．
Ｐ＝６ｎ＋６は、６の倍数なので全て合成数です．
よって、素数は、Ｐ＝６ｎ＋１またはＰ＝６ｎ＋５のグループに属していることになります．（ｎ＝０、１、２、３、４、５・・・）
Ｐ＝６ｎ＋１＝｛１、７、１３、１９、２５、３１，３７・・・}
Ｐ＝６ｎ＋５＝｛５、１１、１７、２３、２９、３５，４１・・・}

２ページ《素数判定する前の準備、その２》素数が二つのグループに分かれていると扱いづらいので、すべての素数がひとつのグループに属するように変換します．ちょっとトリッキーな手法を使います．
まずグループは、Ｐ＝６ｎ＋１を使うことにします．
そして、ｎを全ての整数に拡張します．
つまり（ｎ＝０、±１、±２、±３、±４、±５・・・）と云う事です．
すると、
Ｐ＝６ｎ＋１＝｛・・・ －３５、－２９、－２３、－１７、－１１、－５、１、７、１３、１９、２５ ・・・}となります．

ここで例えば、ｎ＝－１の時、Ｐ＝－５
ｎ＝－２の時、Ｐ＝－１１
ｎ＝－３の時、Ｐ＝－１７のように、ｎが負数の場合にはＰも負数になってしまいますが、これを強引に正の整数であると解釈することにします．つまり－５は５である、－１１は１１である、－１７は１７である、等々、と心の中で思うと云う事です．
本当は、絶対値をつけてＰ＝｜６ｎ＋１｜とすればいいのでしょうが、そうすると絶対値を外すのに場合分けをしなければならなくなり、場合分けの記述が複雑になって書き示すのはちょっと大変なのです．そう云う事で絶対値は使わずに、負数を正数と見做すと云う事で対応したいと思います．
余談ですが、Ｐ＝｜６ｎ＋１｜とＰ＝｜６ｎ＋５｜の内容は同じなので、どちらのグループを使っても結果は同じになります．しかし６ｎ＋１の方が記述しやすいので、こちらを使うことにしました．

３ページ《拡張したＰ＝６ｎ＋１のグループに含まれるもの》
・・・ －６５、－５９、－５３、－４７、－４１、－３５、－２９、－２３、－１７、－１１、－５、１、７、１３、１９、２５、３１、３７、４３、４９、５５、６１ ・・・
このグループには、１と素数と合成数が含まれています．従って、このグループから１と合成数を除けば、素数だけが残ることになります．

１はそのまま除外して終わりです．
そこで合成数の除き方を、次に考えることにします．

４ページ《拡張したＰ＝６ｎ＋１に含まれる合成数の除き方》
Ｐ＝６ｎ＋１に含まれる合成数は、このグループの数同士の積になっていることを示します．
まず、ＰａとＰｂの二つの数を考えます．それは、
Ｐａ＝６ｋ＋１
Ｐｂ＝６ｍ＋１です．（ｋとｍは０以外の整数とします）
そして、ＰａとＰｂの積を考えると、
Ｐａ＊Ｐｂ＝（６ｋ＋１）＊（６ｍ＋１）＝３６ｍｋ＋６ｋ＋６ｍ＋１＝６＊（６ｍｋ＋ｋ＋ｍ）＋１となります．
ここで、
ｎ＝６ｍｋ＋ｋ＋ｍと置くと、
Ｐａ＊Ｐｂ＝６ｎ＋１となります．
つまり、Ｐａ＊Ｐｂは６ｎ＋１のグループに属する合成数と云う事です．
従って、６ｎ＋１のグループの中からＰａ＊Ｐｂを見付け出して除外すれば、素数が残ると云う事です．

例えば、
７＊７＝４９－５＊７＝－３５－５＊－１１＝５５などを除外すると云う事です．

５ページ《具体例：７の倍数》
Ｐ＝６ｎ＋１のグループに属していて、７の倍数となっている合成数をＰｃとします．
つまり、
Ｐｃ＝７＊（６ｎ＋１）＝４２ｎ＋７と云う事です．ここで、ｎは整数です．
すると、ｎ＝０の時にＰｃ＝７で素数となりますが、ｎ＝±１、±２、±３、±４、±５・・・の時には、Ｐｃは全て７の倍数であり、従って全て合成数です．
例えば、ｎ＝１の時、Ｐｃ＝４９ｎ＝２の時、Ｐｃ＝９１ｎ＝３の時、Ｐｃ＝１３３ｎ＝－１の時、Ｐｃ＝－３５
ｎ＝－２の時、Ｐｃ＝－７７
ｎ＝－３の時、Ｐｃ＝－１１９などです．
この事実から逆に、与えられた数Ｐが７の倍数かどうかを判定する方法を考えてみます．
Ｐ＝４２ｎ＋７の数式をｎについて変形しますと、
ｎ＝（Ｐ－７）÷４２が得られます．
ｎは整数なので、Ｐが７の倍数であれば、右辺は割り切れて商に余りは出ないはずです．
右辺の商に余りが出たら、Ｐは７の倍数ではないという事です．
例えば、Ｐ＝４９の場合、
ｎ＝（４９－７）÷４２＝１となり、割り切れているので、４９は７の倍数です．
例えば、Ｐ＝５５の場合、
ｎ＝（５５－７）÷４２＝１余り６となり、割り切れないので、５５は７の倍数ではありません．

例えば、Ｐ＝－３５の場合、
ｎ＝（－３５－７）÷４２＝－１となり、割り切れているので、－３５は７の倍数です．
これは、どう云う事かというと、Ｐ＝６ｎ＋１のグループの中で７の倍数は周期４２で現れる事を示しています．

ここで周期性があることから、或るアイデアを思い付きました．それは三角関数を応用して、与えられた数Ｐが７の倍数かどうかを判定する、と云うアイデアです．ちょっと、トリッキーなんですけどね．

数式で示すと、
ｙ＝ｓｉｎ（（Ｐ－７）÷４２）πと云うものです．ここでπは３．１４ラジアン（１８０度）のことです．
この式では、Ｐが７の倍数の時だけ、ｙは０になります．
つまり、数式ｙが０になるか、どうかで、Ｐが７の倍数なのか違うのかが判定できると云う事です．

６ページ《具体例：１３の倍数》
Ｐ＝６ｎ＋１のグループに属していて、１３の倍数となっている合成数をＰｄとします．
つまり、Ｐｄ＝１３＊（６ｎ＋１）＝７８ｎ＋１３と云う事です．ここで、ｎは整数です．
すると、ｎ＝０の時にＰｄ＝１３で素数となりますが、ｎ＝±１、±２、±３、±４、±５・・・の時には、Ｐｄは１３の倍数であり、従って全て合成数です．
例えば、ｎ＝１の時、Ｐｄ＝９１ｎ＝２の時、Ｐｄ＝１６９ｎ＝３の時、Ｐｄ＝２４７ｎ＝－１の時、Ｐｄ＝－６５ｎ＝－２の時、Ｐｄ＝－１４３
ｎ＝－３の時、Ｐｄ＝－２２１などです．逆に、与えられた数Ｐが１３の倍数かどうかを判断してみます．
Ｐ＝７８ｎ＋１３の数式を変形しますと、
ｎ＝（Ｐ－１３）÷７８が得られます．
ｎは整数なので、Ｐが１３の倍数であれば、右辺は割り切れて商に余りは出ないはずです．
右辺の商に余りが出たら、Ｐは１３の倍数ではないと云う事です．
例えば、Ｐ＝２４７の場合、
ｎ＝（２４７－１３）÷７８＝３となり、割り切れているので、２４７は１３の倍数です．
例えば、Ｐ＝３２５の場合、
ｎ＝（３２５－１３）÷７８＝４となり、割り切れているので、３２５は１３の倍数です．
例えば、Ｐ＝－２０９の場合、
ｎ＝（－２０９－１３）÷７８＝－２余り－６６となり、割り切れないので、－２０９は１３の倍数ではありません．
また、Ｐ＝６ｎ＋１のグループの中で、１３の倍数は周期７８で現れています．

ここで１３の倍数かどうかを判定する数式を示すと、
ｙ＝ｓｉｎ（（Ｐ－１３）÷７８）πとなります．πは３．１４ラジアン（１８０度）です．
Ｐが１３の倍数の時だけ、ｙは０になります．
数式ｙが０になるか、どうかで、Ｐが１３の倍数なのか違うのかが判定できます．

７ページ《具体例：－５の倍数》
Ｐ＝６ｎ＋１のグループに属していて、－５の倍数となっている合成数をＰｅとします．
つまり、
Ｐｅ＝－５＊（６ｎ＋１）＝－３０ｎ－５と云う事です．ここで、ｎは整数です．
すると、ｎ＝０の時にＰｅ＝－５で素数となります．（心の中で負号を外してください）
ｎ＝±１、±２、±３、±４、±５・・・の時には、Ｐｅは全て－５の倍数であり、また合成数でもあります．
例えば、ｎ＝１の時、Ｐｅ＝－３５ｎ＝２の時、Ｐｅ＝－６５ｎ＝３の時、Ｐｅ＝－９５ｎ＝－１の時、Ｐｅ＝２５ｎ＝－２の時、Ｐｅ＝５５ｎ＝－３の時、Ｐｅ＝８５などです．逆に、与えられた数Ｐが－５の倍数かどうかを判断してみます．
Ｐ＝－３０ｎ－５の数式を変形しますと、
ｎ＝（Ｐ＋５）÷（－３０）
が得られます．
ｎは整数なので、Ｐが－５の倍数であれば、右辺は割り切れて商に余りは出ないはずです．
右辺の商に余りが出たら、Ｐは－５の倍数ではないと云う事です．
例えば、Ｐ＝２４７の場合、
ｎ＝（２４７＋５）÷（－３０）＝－８余り１２となり、割り切れないので、２４７は－５の倍数ではありません．
例えば、Ｐ＝３２５の場合、
ｎ＝（３２５＋５）÷（－３０）＝－１１となり、割り切れているので、３２５は－５の倍数です．
例えば、Ｐ＝－２０９の場合、
ｎ＝（－２０９＋５）÷（－３０）＝６余り－２４となり、割り切れないので、－２０９は－５の倍数ではありません．
また、Ｐ＝６ｎ＋１のグループの中で、－５の倍数は周期３０で現れています．

ここで－５の倍数かどうかを判定する数式を示すと、
ｙ＝ｓｉｎ（（Ｐ＋５）÷（－３０））πとなります．πは３．１４ラジアン（１８０度）です．
Ｐが－５の倍数の時だけ、ｙは０になります．
数式ｙが０になるか、どうかで、Ｐが－５の倍数なのか違うのかが判定できます．

８ページ《素数判定の具体例》与えられた数をＰとします．
Ｐ＝６ｎ＋１の時、ＰがＰより小さい数の倍数でなければ、Ｐは素数です．（Ｐより小さいとは、絶対値が小さいと云う意味です）
例えば、Ｐ＝１３が素数か、どうかを判定してみます．
１３より小さい数は、－５と７とー１１なので、前述の三角関数を使って示すと、
ｙ＝ｓｉｎ（（Ｐ＋５）÷（－３０））π＊ｓｉｎ（（Ｐ－７）÷４２）π＊ｓｉｎ（（Ｐ＋１１）÷（－６６））πとなります．
この式のＰに１３を代入してｙを求めますと、
ｙ＝０．２５４・・・となり、ｙ≠０なので、Ｐは－５の倍数でも７の倍数でも－１１の倍数でもありません．
従ってＰ＝１３は素数と判定できます．

９ページ
例えば、Ｐ＝－１７が素数か、どうかを判定してみます．
－１７より小さい数は、－５と７とー１１と１３なので、数式で示すと、
ｙ＝ｓｉｎ（（Ｐ＋５）÷（－３０））π＊ｓｉｎ（（Ｐ－７）÷４２）π＊ｓｉｎ（（Ｐ＋１１）÷（－６６））π＊ｓｉｎ（（Ｐ－１３）÷７８）πとなります．
この式のＰに－１７を代入してｙを求めますと、
ｙ＝０．２４４・・・となり、ｙ≠０なので、Ｐは－５の倍数でも７の倍数でも－１１の倍数でも１３の倍数でもありません．
従ってＰ＝－１７は素数と判定できます．（心の中で負号は外します）

１０ページ
例えば、Ｐ＝２５が素数か、どうかを判定してみます．
２５より小さい数は、－５と７とー１１と１３とー１７と１９と－２３なので、数式で示すと、
ｙ＝ｓｉｎ（（Ｐ＋５）÷（－３０））π＊ｓｉｎ（（Ｐ－７）÷４２）π＊ｓｉｎ（（Ｐ＋１１）÷（－６６））π＊ｓｉｎ（（Ｐ－１３）÷７８）π＊ｓｉｎ（（Ｐ＋１７）÷（－１０２））
π＊ｓｉｎ（（Ｐ－１９）÷１１４）π＊ｓｉｎ（（Ｐ＋２３）÷（－１３８））πとなります．
この式のＰに２５を代入してｙを求めますと、
ｙ＝０となるので、Ｐは－５と７とー１１と１３とー１７と１９の中のどれかの倍数なっている事が分かります．
従ってＰ＝２５は合成数と判定できます．

１１ページ《素数判定式》
素数を判定する手順としては、以上で終わりなのですが、一般化した数式をチョット思いついたので、それを次に示してみます．

Ｐ＝６ｎ＋１の時、Ｐが素数かどうかを判定する数式を考えます．
まず、Ｐより絶対値が小さい数は｛－５、７、－１１、１３、－１７ ・・・ ６ｎ－１１、－６ｎ＋７、６ｎ－５、－６ｎ＋１}です．
Ｐがこれらの小さな数の倍数でなければ、Ｐは素数です．
ここで、前述の倍数かどうかを判定する三角関数を使います．
繰り返しの説明になりますけれど、Ｐが－５の倍数かどうかの判定は、次の式の計算結果から判定します．
ｙ＝ｓｉｎ（（Ｐ＋５）÷（－３０））πｙ＝０ならＰは－５の倍数です．ｙ≠０なら倍数ではありません．
Ｐが７の倍数かどうかの判定は、次の式を計算して、ｙ＝０ならＰは７の倍数です．ｙ≠０なら倍数ではありません．
ｙ＝ｓｉｎ（（Ｐ－７）÷４２）πＰが－１１の倍数かどうかの判定は、次の式を計算して、ｙ＝０ならＰは－１１の倍数です．ｙ≠０なら倍数ではありません．
ｙ＝ｓｉｎ（（Ｐ＋１１）÷（－６６））π
この後もＰが１３、－１７、１９、－２３、２５ ・・・ ６ｎ－５、－６ｎ＋１まで、同様に考えます．
Ｐが６ｎ－５の倍数かどうかの判定は、次の式を計算して、ｙ＝０ならＰは６ｎ－５の倍数です．ｙ≠０なら倍数ではありません．
ｙ＝ｓｉｎ（（Ｐ－６ｎ＋５）÷（３６ｎ－３０））π
Ｐが－６ｎ＋１の倍数かどうかの判定は、次の式を計算して、ｙ＝０ならＰは－６ｎ＋１の倍数です．ｙ≠０なら倍数ではありません．
ｙ＝ｓｉｎ（（Ｐ＋６ｎ－１）÷（－３６ｎ＋６））π

そして、上記のｙ全ての積を作れば、いっぺんに結果が出せると思ったのです．そこで、次の数式を考えました．

Ｙ＝ｓｉｎ（（Ｐ＋５）÷（－３０））π＊ｓｉｎ（（Ｐ－７）÷４２）π＊ｓｉｎ（（Ｐ＋１１）÷（－６６））π＊ｓｉｎ（（Ｐ－１３）÷７８）π ・・・・・・ ｓｉｎ（（Ｐ－（６ｎ－５））÷（３６ｎ－３０））π＊ｓｉｎ（（Ｐ－（－６ｎ＋１））÷（－３６ｎ＋６））π

この数式Ｙが素数判定式です．
与えられた数Ｐを右辺に代入して、Ｙ＝０となればＰは合成数です．
Ｙ≠０であればＰは素数であると判定します．Ｐが、Ｐより小さい数の倍数になっていないからです．

１２ページ
例えばＰ＝９１の場合：
９１より小さい数は、－５、７、－１１、１３、－１７、１９、－２３、２５、－２９、３１、－３５、３７、－４１、４３、－４７、４９、－５３、５５、－５９、６１、－６５、６７、－７１、７３、－７７、７９、－８３、８５、－８９です．
よって、素数判定式は次の通りです．
Ｙ＝ｓｉｎ（（９１＋５）÷（－３０））π＊ｓｉｎ（（９１－７）÷４２）π＊ｓｉｎ（（９１＋１１）÷（－６６））π＊ｓｉｎ（（９１－１３）÷７８）π＊ｓｉｎ（（９１＋１７）÷（－１０２））π＊ｓｉｎ（（９１－１９）÷１１４）π＊ｓｉｎ（（９１＋２３）÷（－１３８））π＊ｓｉｎ（（９１－２５）÷１５０）π＊ｓｉｎ（（９１＋２９）÷（－１７４））π＊ｓｉｎ（（９１－３１）÷１８６）π＊ｓｉｎ（（９１＋３５）÷（－２１０））π＊ｓｉｎ（（９１－３７）÷２２２）π＊ｓｉｎ（（９１＋４１）÷（－２４６））π＊ｓｉｎ（（９１－４３）÷２５８）π＊ｓｉｎ（（９１＋４７）÷（－２８２））π＊ｓｉｎ（（９１－４９）÷２９４）π＊ｓｉｎ（（９１＋５３）÷（－３１８））π＊ｓｉｎ（（９１－５５）÷３３０）π＊ｓｉｎ（（９１＋５９）÷（－３５４））π＊ｓｉｎ（（９１－６１）÷３６６）π＊ｓｉｎ（（９１＋６５）÷（－３９０））π＊ｓｉｎ（（９１－６７）÷４０２）π＊ｓｉｎ（（９１＋７１）÷（－４２６））π＊ｓｉｎ（（９１－７３）÷４３８）π＊ｓｉｎ（（９１＋７７）÷（－４６２））π＊ｓｉｎ（（９１－７９）÷
４７４）π＊ｓｉｎ（（９１＋８３）÷（－４９８））π＊ｓｉｎ（（９１－８５）÷５１０）π＊ｓｉｎ（（９１＋８９）÷（－５３４））π
計算結果は、Ｙ＝０となるので、９１は合成数と判定します．

１３ページ
例えばＰ＝－２９の場合：－２９より小さい数は、－５、７、－１１、１３、－１７、１９、－２３、２５です．
よって、素数判定式は次の通りです．
Ｙ＝ｓｉｎ（（－２９＋５）÷（－３０））π＊ｓｉｎ（（－２９－７）÷４２）π＊ｓｉｎ（（－２９＋１１）÷（－６６））π＊ｓｉｎ（（－２９－１３）÷７８）π＊ｓｉｎ（（－２９＋１７）÷（－１０２））π＊ｓｉｎ（（－２９－１９）÷１１４）π＊ｓｉｎ（（－２９＋２３）÷（－１３８））π＊ｓｉｎ（（－２９－２５）÷１５０）π
計算結果は、Ｙ＝０．００８２５５・・・となります．
Ｙ≠０なので、－２９は素数と判定します．
（－２９は２９と解釈してください）《この判定式の問題点》
数式Ｙは、このままでは計算に手間がかかります．多分、エラトステネスの篩をつかって素数判定を行なうよりも手間がかかるでしょう．
そこで、数式Ｙがｓｉｎの積になっているので、倍角の公式を応用するとか、複素関数を応用すれば簡略化できるような気がしたんですけども、どうも上手く行かないんですね．それで、今のところ手詰まり状態です．と云う事で、今回はここまでとします．なにか閃いたら別途記事を投稿します．
（了）

後書き
ＣＧ画像：次の画像処理ソフトウエアを使用しました．
ArtRage 3 Studio Pro

アンビエント社

Photoshop Elements 10

アドビシステムズ株式会社

著者：
茜町春彦（あかねまちはるひこ）と申します．
2004年より活動を始めたフリーランスのライター＆イラストレーターです．独自のアイデア・考察を社会に提示することをミッションとし、平等で自由な世界の構築を目指して創作活動を行なっております．また、下記WEBサイトに於いても、デジタル作品を公開しております．
ピクシブ
カクヨム
エブリスタ
はてなブログ
楽天Kobo電子書籍ストア
Facebook ページ
YouTubeBOOTH

その他：
製品名等はメーカー等の登録商標等です．
本書は著作権法により保護されています．
２０１９年７月１０日発行

奥付

素数を判定する為のちょっとしたアイデア（ベータ版）
http://p.booklog.jp/book/127619

著者 : 茜町春彦
著者プロフィール：http://p.booklog.jp/users/akaneharu/profile

感想はこちらのコメントへ
http://p.booklog.jp/book/127619

電子書籍プラットフォーム : パブー（http://p.booklog.jp/）
運営会社：株式会社トゥ・ディファクト