我将 GMP(带 MPIR)用于任意大小的数据类型。我也使用了它的素数测试函数,它使用了 Miller-Rabin 方法,但它并不准确。这就是我想要解决的问题。
通过使用蛮力和 sqrt 方法,我能够确认数字 18446744073709551253 是素数。
有没有办法以 100% 的准确率检查大数是否为素数?
它不应该使用太多的内存/存储空间,几兆字节是可以接受的。
它应该比我使用的 sqrt 方法更快。
它应该适用于大小至少为 64 位或更大的数字。
最后,它应该是 100% 准确的,没有可能!
我有什么选择?
虽然我可以使用蛮力方法(对于 64 位数字),但出于兴趣,我想要更快、更大。此外,64 位数字检查太慢:总共 43 秒!