沒法做。

除非不要求結果準確。


你知道,1024位的數字,運算一次需要多久嗎?

使用歐拉篩法

一個十六位數字,判斷是否為素數大概需要一秒,二十位一分鐘,二十四位一小時,二十六位半天,三十四位一年。

四十位,一千年。

六十位,十萬億年。

以上還是忽略位數增長的運算負荷增加的結果,實際會更長。

一千位??????提問者你在搞笑??


1024位的話大數吧,判斷是否素數的話Millerrabin吧


import libnum
import gmpy2
p=libnum.generate_prime(1024)
print gmpy2.is_prime(p)

至於libnum、gmpy2這2個模塊的安裝法子可以看我博文裏的鏈接:

【安裝使用方法】的索引 - pcat - 博客園?

www.cnblogs.com


高精+MillerRabin(其中的快速冪可以改進一下適應10進位的)

複雜度是 [公式] 其中K表示跑K遍MR檢驗,正確率為 [公式]


是JAVA的程序嗎,比較簡單些呢


給你點思路吧 這麼大的數直接算是不現實的,但是可以用一個長度為1024的數組來存,用小學的列豎式的方法對其進行加減乘除運算


推薦閱讀:
相關文章