タグ

algorithmとコードに関するramda-phiのブックマーク (1)

  • Pythonを使って高速素数判定をしてみる - Pashango’s Blog

    みなさん、素数を数えてますか? 『素数』は1と自分の数でしか割ることのできない孤独な数字。 暗号化できたり、乱数を作れたり、心を落ち着いたりして、私達に勇気を与えてくれます。 素数といえば「エラトステネスのふるい」ですが、あれは大きい桁の素数を生成しようとすると、とんでもなく時間が掛ります。 今回は、どんな大きな桁の素数でも高速で素数判定するプログラムを作ってみます。 基は「フェルマーの小定理」 素数判定の基は「フェルマーの小定理」です、数式は1行だけのごく簡単なものです。 a^(p-1) mod p の答えが1以外ならpは合成数である ただし、aとpが素の関係(最大公約数が1)であること 2つの数を「べき剰余算」して答えが1以外なら合成数(not 素数)という事です。 aに2を代入してqが素数なら答えが1になる、たったこれだけです簡単でしょ? def is_prime(q): q =

    Pythonを使って高速素数判定をしてみる - Pashango’s Blog
  • 1