时间:2010-07-26 16:04:41

标签: primes

2 个答案:

答案 0 :(得分:3)

在GMP中实施的一项随机基础Miller-Rabin测试,多次素数和多次运行的平均值。 i4770K @ 4.3GHz,GMP 6.0.0a。对于64位以下的数字,使用非GMP实现(使用x86_64 asm mulmod)的时间可以更快。这种实现似乎跟随大多数其他C + GMP实现的性能相当接近(对于相同的数字,mpz_aprcl的mpz_sprp在以下几个百分点内运行)。使用非标准的API调用来做蒙哥马利数学可能会更快(也许不是)。

  • 20位数:1.1 uS
  • 40位数:3.4 uS
  • 80位数:14美元
  • 200位:0.11 mS
  • 400位:0.65 mS
  • 800位:4.7 mS
  • 1200位:15 mS
  • 1600位:31 mS
  • 2000位:53 mS
  • 4000位:310 mS

通过良好的实施,BPSW(基础2 M-R + [额外]强卢卡斯测试)占用一次M-R测试成本的约3倍。 Lucas测试实现在性能上有很大差异。 Frobenius测试大约是单次M-R测试成本的2.5倍。

答案 1 :(得分:2)

一轮Miller-Rabin测试可能需要大约1毫秒;这是一个JavaScript交互式实现,您可以在浏览器中运行并自己检查时间: http://www.javascripter.net/math/primes/millerrabinprimalitytest.htm