nbsp;
此前在写论文的时候林枫还特別了解过这方面。
先是初始化设 s_0 =4 ,而后递归:计算 s_(n+1) = s_(n^2 - 2 )
模 2^p - 1 ,运算从 n = 1开始,直到 n = p - 2 为止。
如果最终结果 s_(p-2) 是 0,那么 2^p - 1 就是一个素数;否则它不是素数。
听起来依旧是有点麻烦的。
但对於超级计算机来说这完全是小儿科好不好。
而且由於卢卡斯-莱默测试的复杂度是线性时间复杂度,即 (p),这意味著计算的时间与 p 成正比。
对於2^74207281 - 1来说,只需要执行74207281 次循环,每次计算一个模运算。
卢卡斯-莱默测试每次叠代中包含的运算量比较复杂,涉及到大整数的平方和模运算。
不过估算的话也不是没办法。
可以粗略假设每次叠代进行模运算需要进行约 10^6次计算。
这样计算的话,总的计算次数是:
74207281*10^6 约等於 7.42*10^13次计算。
如果计算机每秒可以执行 10^15次计算。
则总时间为 0.0742 秒。
理论上,一台超级计算机可以在不到 0.1 秒的时间內验证 2^74207281 - 1 是否是一个梅森素数。
到林枫这却这么久还没出结果?
本章未完,请点击下一页继续阅读! 第2页 / 共6页