有什么办法可以查看gympy
的源代码吗?
具体而言,gmpy2.is_prime
。
我尝试了各种链接
我无法在任何地方找到它。
我已下载gmpy2,并在我的本地驱动器上进行了检查,但文件扩展名为.pyd
。
当我打开它时(在记事本中),以下是我看到的前几行 -
MZ ÿÿ ¸ @ ð º ´ Í!¸LÍ!This program cannot be run in DOS mode.
其余的都是胡言乱语。
我想写一个非常快速的素数检查器,它是迄今为止遇到的最好的 谁能告诉我如何获得源代码?或者也许链接到其他一些快速检验员的源代码(或讨论)?
答案 0 :(得分:5)
我保持gmpy和gmpy2。 @cartman和@DJV已经引导你到源代码,但我会添加一些评论。
mpz_probab_prime_p
进行试验因子分析,然后进行Miller-Rabin检验的多次迭代。 Miller-Rabin测试不能证明一个数是素数,它非常擅长证明一个数是复合的。如果你重复测试足够多次,那么这个数字很可能是最好的。有一些已知的实例,mpz_probab_prime_p
报告复合材料在完成12到15次迭代时是素数。
更有趣的素性测试是BPSW测试。没有已知的复合材料被报告为素数,但它推测它们存在。
gmpy2
还包含几个素数算法,可用作完整测试的构建块。它们基于以下代码:
http://sourceforge.net/projects/mpzlucas/
http://sourceforge.net/projects/mpzprp/
一些有用的链接:
答案 1 :(得分:3)
它映射到Pympz_is_prime
C函数,请参阅this link以获取该函数的源代码。