我對任意大小的數據類型使用GMP(與MPIR)。我也使用它的素性測試函數,它使用Miller-Rabin方法,但它不準確。這是我想要解決的問題。100%確定性的快速素性測試?
我能夠證實該號碼18446744073709551253是主要使用蠻力,用開方的方法。
是否有任何方法檢查大數是否爲總數,精度達到100%?
它不應該使用太多的內存/存儲空間,只有幾兆字節是可以接受的。
它應該比我使用的sqrt方法更快。
它應該是大小至少爲64位,或較大的數字工作。
最後,它應該是100%準確的,maybes!
我的選擇是什麼?
我可以用蠻力方法(64位數字)住在哪裏,但出於興趣,我想更快&大。另外,64位數字檢查太慢了:總共43秒!
對於數字高達'2^64',Baillie Pomerance Selfridge Wagstaff測試是可靠的。在此之上,APRCL或橢圓曲線素數證明。 –
你需要100%的準確性嗎?除非你的程序的目的是尋找大的素數(不喜歡不存在這樣做的程序),否則我不會看到任何應用程序無法接受無限小的錯誤機會。 – Grizzly
@Grizzly,我需要它嗎?在我的腦海當然:)如果我在一個程序中做了一個按鈕,它應該告訴我們這個數字是不是一個總數,聽到「也許它是一個總理,我不知道,問別人!」是令人討厭的。 :p – Rookie