如何检查大型BigInt快速存储器的素数?

问题描述

我正在生成一个大的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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...