タグ

Pythonと素数に関するmohnoのブックマーク (2)

  • N番目の素数を求める - すぎゃーんメモ

    SNSなどで話題になっていたので調べてみたら勉強になったのでメモ。 環境 Pythonでの実装例 例1 例2 例3 エラトステネスの篩 Rustでの実装例 試し割り法 エラトステネスの篩 アトキンの篩 おまけ: GMP Benchmark 高速化のテクニック 上限個数を見積もる Wheel factorization オチ Repository References 環境 手元のMacBook Pro 13-inchの開発機で実験した。 2.8 GHz Intel Core i7 16 GB 2133 MHz LPDDR3 Pythonでの実装例 例1 最も単純に「2以上p未満のすべての数で割ってみて余りが0にならなかったら素数」とする、brute force 的なアプローチ。 import cProfile import io import pstats import sys def m

    N番目の素数を求める - すぎゃーんメモ
    mohno
    mohno 2021/02/06
    「エラトステネスの篩」←フラグで管理しないパターンなんてはじめて見た。「アトキンの篩」←知らなかったが、オーダーは変わらないような気が。
  • Nが現れる素数(N=1,2,3,4) - 技術メモ

    2が現れる素数という面白い素数が紹介されていた。 2が現れる素数 - INTEGERS 昔せっかく高速素数判定器を作ったので、どうせならNが現れる素数を見つけてやろう!と思い立った。 プログラム (※プログラムはpython(2.7.12)で動作します) ルールとしては ①四隅のみの数字を変える(もちろん先頭は1以上の数字) ②四隅の数字はN以外の数字にする としています。 なので、それぞれ5832(8*9*9*9)個の数字の中から素数を探すことになります。 高速素数判定のプログラム(再掲) primechecker.pyという名前で保存 import random import numpy as np class PrimeChecker: def __init__(self, list_limit = pow(10,3)): if list_limit < 5: list_limit

    Nが現れる素数(N=1,2,3,4) - 技術メモ
    mohno
    mohno 2017/12/01
    そりゃそうなんだろうけど、そういうものを探そうとする発想がすごいというか。この前見たコレとか→ http://primerecords.dk/egroup/picture.txt あと、Python なんだな、とか。
  • 1