我正在使用GMP(与MPIR一起)处理任意大小的数据类型。我还使用它的素性测试功能,它使用的是Miller-Rabin方法,但不准确。这就是我想要解决的问题。
我能够证实通过暴力方法和sqrt方法,数字18446744073709551253是质数。
有没有办法以100%的准确率检查大数字是否是质数?
以下是我的要求:
- 它不应该占用太多的内存/存储空间,几兆字节是可以接受的。 - 它应该比我使用的sqrt方法更快。 - 它应该适用于至少64位或更大的数字。 - 最后,它应该是100%准确的,无论如何!
我的选择是什么?
尽管我可以接受暴力方法(对于64位数字),但出于兴趣,我想要更快速且可处理更大的数字。而且,64位数字的检查速度太慢了:总计43秒!
我能够证实通过暴力方法和sqrt方法,数字18446744073709551253是质数。
有没有办法以100%的准确率检查大数字是否是质数?
以下是我的要求:
- 它不应该占用太多的内存/存储空间,几兆字节是可以接受的。 - 它应该比我使用的sqrt方法更快。 - 它应该适用于至少64位或更大的数字。 - 最后,它应该是100%准确的,无论如何!
我的选择是什么?
尽管我可以接受暴力方法(对于64位数字),但出于兴趣,我想要更快速且可处理更大的数字。而且,64位数字的检查速度太慢了:总计43秒!