如何用程序判斷一個1024位的數是否是素數?
沒法做。
除非不要求結果準確。
你知道,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的數組來存,用小學的列豎式的方法對其進行加減乘除運算