0

のソースコードを見る方法はありますgympyか?具体的には、gmpy2.is_prime

いろいろなリンクを試してみました

どこにも見つかりません。

gmpy2をダウンロードし、ローカルドライブで確認しましたが、ファイル拡張子は。でした.pyd。(メモ帳で)開くと、最初の数行が表示されます-

MZ       ÿÿ  ¸       @                                   ð   º ´  Í!¸LÍ!This program     cannot be run in DOS mode.

残りはぎこちないです。

非常に高速な素数チェッカーを書きたいのですが、これまでに出会った中で最高のものです。ソースコードを入手する方法を教えてもらえますか?または、他の高速プライムチェッカーのソースコード(またはディスカッション)へのリンクですか?

4

2 に答える 2

5

gmpy と gmpy2 を保守しています。@cartman と @DJV はすでにソース コードを示していますが、いくつかコメントを追加します。

mpz_probab_prime_p試行因数分解を行い、ミラー・ラビン検定を複数回繰り返します。Miller-Rabin 検定は、数が素数であることを証明するのではなく、数が合成数であることを証明するのに非常に優れています。テストを十分に何度も繰り返すと、数が素数である可能性が高くなります。mpz_probab_prime_p12 ~ 15 回の反復だけが行われたときに合成が素数であると が報告する既知の例があります。

より興味深い素数性テストは BPSW テストです。素数として報告されている既知の複合材料はありませんが、存在すると推測されています。

gmpy2完全なテストの構成要素として使用できるいくつかの素数アルゴリズムも含まれています。これらは、次の場所にあるコードに基づいています。

http://sourceforge.net/projects/mpzlucas/

http://sourceforge.net/projects/mpzprp/

いくつかの便利なリンク:

http://www.trnicely.net/misc/bpsw.html

http://www.pseudoprime.com/pseudo.html

于 2013-03-04T14:35:47.357 に答える
3

Pympz_is_primeこれはC 関数にマップされます。関数のソース コードについては、このリンクを参照してください。

于 2013-03-04T13:38:41.457 に答える