Fumiのブログ

Pythonで書く『エラトステネスのふるい』

はじめに

神様のおひとりである「ゆたかさん(@yutakakn)」が最近Pythonを始めたらしく、「エラトステネスの篩」を書いたぜというツイートをされていました。

そこで、ゆたかさんはC言語メインの方なのでコードがC言語っぽい書き方だったので、Pythonっぽい書き方で書いてみましたというお話です。 あと、『エラトステネスのふるいとその計算量』という良い記事も見つけたのでリンクだけご紹介。

ソースコード

実行結果

f:id:fantm21:20181020084225p:plain

追記というか注意書き

今回のコードはちょっと裏技を使っているので、「良いコード」とは呼べないものです。 何が悪いかというとfor文のループ中に対象となるシーケンス(今回の場合はdata)を書き換えている点です。 荒技なので通常このようなコードは書かない方がいいです。 この点については、Python公式ドキュメントの言語リファレンス-複合文:for文を参照ください。 [リンク:https://docs.python.org/ja/3/reference/compound_stmts.html#the-for-statement]