2013-03-04 101 views
0

有沒有什麼辦法可以看看gympy的源代碼? 具體來說,gmpy2.is_primegmpy源代碼

我嘗試了各種鏈接

我不能在任何地方找到它。

我有gmpy2下載,並檢查我的本地驅動器,但文件擴展名是.pyd。 當我打開它(記事本),以下是第幾行我見 -

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

其餘的是亂碼。

我想寫一個非常快速的素數檢查器,它是我迄今爲止所遇到的最好的 任何人都可以告訴我如何獲取源代碼?或者可能鏈接到其他一些快速素數檢查器的源代碼(或討論)?

+0

因爲所有的文件,我可以在庫中看到是.c或.h(並且因爲它使得可以在c或C++中編寫這樣的lib而不是Python),我不認爲你可以看看你想看到的Python代碼,因爲我認爲沒有任何 – kratenko 2013-03-04 13:39:08

+0

[gmpy](https://github.com/aleaxit/gmpy) ,[GMP](https://gmplib.org/repo/gmp/file/tip) – jfs 2017-04-13 13:29:53

回答

5

我維護gmpy和gmpy2。 @cartman和@DJV已經將您引導至源代碼,但我會添加一些評論。

mpz_probab_prime_p做試驗分解,然後進行Miller-Rabin檢驗的多次迭代。米勒 - 拉賓測試不能證明一個數字是素數,它只是非常擅長證明一個數字是複合數。如果你足夠多次地重複這個測試,可能性就是這個數字是質數。有已知的情況,mpz_probab_prime_p報告只有12到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

3

它映射到Pympz_is_prime C函數,有關該函數的源代碼,請參見this link

+2

實際上這是'mpz_probab_prime_p'的包裝,可以在GMP源代碼'mpz/pprime_p.c'中找到 – dmg 2013-03-04 13:41:10