読者です 読者をやめる 読者になる 読者になる

無意味なブログ

勉強のこと、趣味のこと、日記など適当に

MENU

【Python3】素数判定のプログラムを使って遊んでみる

python プログラミング


前回作った素数を判定するプログラムを使って遊んでみます。

高速化してみる

これから色々遊ぶに当たって、今のままだと計算に時間がかかりすぎます。
以下のサイトを参考に、アルゴリズムを改良。
d.hatena.ne.jp

改良前のソースコード

改良前のコードは以下の通りです。

前回のプログラムを元にして
 ●2から100000について素数かどうか判定する
 ●素数の場合、ファイル"prime_loop.dat"に出力する
 ●実行時間を出力する
ようにコードを変更しています。

改良後のソースコード

改良後のコードは以下の通りです。

参考にしたサイトとほぼ同じアルゴリズムになってます。

実行時間の比較

改良前
elapsed_time: 120.15407633781433 [sec]

改良後
elapsed_time: 0.47652101516723633 [sec]

うん。むちゃくちゃ速くなりました。

素数の並びをグラフ化してみる

100000までの素数を考える

100000までの素数の並び
2, 3, 5, ..., 99991
をグラフ化してみましょう。

試しに素数の値を縦軸にとって、順番にバーッと並べて線で結ぶと以下のグラフのようになります。
f:id:kouya17:20170220005013p:plain

うん。ただただ直線っぽいですね…。
0付近は傾きが小さい感じかしますが、この値の範囲だとあんまり面白そうな特徴はありませんね。

10000000までの素数を考える

もっと大きい値までやってみましょう!

10000000までの素数の並び
2, 3, 5, ..., 9999991
をグラフ化してみます。

f:id:kouya17:20170220220104p:plain

さっきと同じようにプロットしました。
うん。まっすぐですね。さっきとほぼ変わらない。

まとめ

素数を判定するプログラムを使って遊んでみました。
素数を使ってもっと面白い図を作りたいです。

広告を非表示にする