素数の積で回文数となるパターンに波がある
Last update:2018/03/07 Build:2018/03/02
偶然 10万番目までの素数が記されたファイル を見つけた。 何の目的もなく、10万番目までの素数を見たくなりダウンロード(excel形式)した。 ふと素数と素数を掛けて回文(「たけやぶやけた」のように上から読んでも下から読んでも同じになる)に なるような数字があるかなと思った。 エクセルの表でデータが掲載されていたので、VBAで計算して、判断し、出力するマクロを作った。 この途中に「回文数」という言葉を知った。回文の数字版ですね。 出力フォーマットは表−1のように ○個目の回文数 素数のm番目 m番目の素数の値 素数のn番目 n番目の素数の値 素数の積で回文数となった値 です。 表−1 素数の積が回文数となる場合 出力フォーマット
ビジュアルベーシックで7万番目の素数の積までで、回文数となる場合をチェックした。表−2に示す。 表−2 素数の積が回文数となる場合 7万番目の素数までチェック
これを眺めていると、3万番目と7万番目の最後の素数の番号が同じである。計算間違いかなと当初思った。 確認してエラーはなさそうである。そうすると出現に特徴があるのかと思い出した。 そこで回文数となる素数の積の元になった素数のm番目とn番目をグラフ上にプロットしてみた。 図−1がその図です。(m<=n) 図−1 3000番目までの素数の積が回文数となる場合
同様に1万番目までの素数の積が回文数となるパターンを図−2に示す。 図−2 10000番目までの素数の積が回文数となる場合
双曲線的に出現する、明らかに出現パターンに波がある。数を大きくしても同じだろうか? 調べてみることにした。 ビジュアルベーシックで10万番目までの素数の積をチェックしたが、15時間余りかかった。 そこでフォートランで4coreを有効に使う方法を考えた。 別ページを 参照してください。 20万番目までの素数の積で回文数となる(m、n)をプロットした。やはり双曲線的になる。 もちろん十進数での回文数なので「素数」そのものの特徴とは言えないが、面白い。 図−3 20万番目までの素数の積が回文数となる場合
興味のある人はやってみて下さい。 ○番目の素数でプロットするのではなく、素数の値そのものでプロットするとどうなるかもある。 素数20万番目までチェックした時の、最後の数行の回文数を乗せます。 表−3 20万番目までチェックした最後の回文数
(2018/03/07 追記) 覚悟を決めて40万番目までの素数の積で回文数となる(m、n)をプロットした。全く同じ傾向。 20万番目から40万番目は、回文数となる組み合わせがあまり出てこない。 図−4 40万番目までの素数の積が回文数となる場合
素数40万番目までチェックした時の、最後の数行の回文数を乗せます。 表−4 40万番目までチェックした最後の回文数
(2018/03/07 追記ここまで) |