问题描述
我正在生成一个大的BigInt,需要测试它是否是质数。但是,这种简单的算法要花很长时间。
bool _isProbablePrime(BigInt n) {
var _isPrime = true;
for (var i = BigInt.from(2); i < (n); i = i + BigInt.one) {
if (n % i == BigInt.zero) _isPrime = false;
}
return _isPrime;
}
还有另一种效率更高的算法,可以正确确定n的素数吗?
感谢您的帮助,在此先感谢您! :D
解决方法
对每个感兴趣的人:最简单的解决方案似乎是使用Miller-Rabin素数测试的实现。
有一个名为ninja_prime的飞镖包,使用该算法确定BigInts的素数。 https://pub.dev/packages/ninja_prime