跳转至

梅森素数与素数纪录

层级:① 教科书共识 + 纪录信息(来源:GIMPS,mersenne.org)· [发布:2026-10-23 07:39:14]

一句话版本

人类已知的最大素数,几乎总是"梅森素数"——因为它有一种专属的高速检测算法。 当前纪录:\(2^{136279841} - 1\),41,024,320 位十进制数字。

什么是梅森素数

形如 \(M_p = 2^p - 1\)(\(p\) 为素数)的素数。注意 \(p\) 是素数只是必要条件,不充分:

\[2^{11} - 1 = 2047 = 23 \times 89 \quad (\text{不是素数})\]

它为什么独占纪录榜?因为有一个只对它有效的判别法——卢卡斯-莱默检验(Lucas–Lehmer,1930 年代):

对 \(p > 2\),定义序列 \(s_0 = 4\),\(s_{n+1} = s_n^2 - 2\)。则 \(M_p = 2^p - 1\) 是素数当且仅当 \(s_{p-2} \equiv 0 \pmod{M_p}\)。

只需 \(p-2\) 次模平方运算,对超大数远快于通用素性检验。这就是为什么已知最大的 18 个素数纪录全是梅森素数。

当前纪录(GIMPS)

项 值
纪录保持者 \(M_{136279841} = 2^{136279841} - 1\)
十进制位数 41,024,320
发现时间 2024-10-12
发现者 Luke Durant(GIMPS,云 GPU 分布式计算,17 国 24 个数据中心)
排名 第 52 个已知梅森素数(带星号:中间指数未全部复核完毕)
上一纪录 \(M_{82589933}\)(24,862,048 位,2018-12-07 发现;2026-09-04 正式确认为第 51 个)

值得一提的是:这是 GIMPS 成立 28 年来首次由 GPU(而非 CPU)发现的梅森素数——用几千块云 GPU 替代了传统志愿者 CPU 网络。

为什么明知"没有最大素数"还要找纪录

欧几里得早已证明素数无穷多,纪录不是"找到终点",而是三件事的副产品:极限压力测试算法、极限压力测试硬件、研究特殊素数族的分布规律。顺带一提:梅森素数与偶完全数一一对应(欧几里得-欧拉定理),这是它千年以来被钟爱的另一半原因。

自己验证

# 卢卡斯-莱默检验:验证 M31 是素数、M11 不是
def lucas_lehmer(p):
    if p == 2:
        return True
    m = (1 << p) - 1
    s = 4
    for _ in range(p - 2):
        s = (s * s - 2) % m
    return s == 0

assert lucas_lehmer(31)                       # M31 = 2147483647 是素数
assert not lucas_lehmer(11)                   # M11 = 2047 = 23 * 89
assert (1 << 31) - 1 == 2147483647
print("M31 = 2147483647 通过卢卡斯-莱默检验 ✓")
print("M11 = 2047 = 23 × 89 ✓(p 为素数不足以保证 Mp 为素数)")

延伸

  • 当前纪录与 GIMPS 最新里程碑的持续更新 → 前沿动态
  • 素数为什么越来越稀但不会耗尽 → 素数定理

发布:2026-10-23 07:39:14 · 数论库