我发现了当今最大的素数,数学界怎么判断我这是真的还是瞎编的?
看到这个问题的第一反应以为你在问
我找到了一个非常大的素数, 比目前已知的所有素数都大, 别人怎么判断我发现的是不是真的素数.
但是往下翻了翻发现大家都在回答"素数有无穷多个, 所以不存在最大的素数". 现在我也不确定题主的原意是什么了.
我会这么想是因为电子前沿基金会 (EFF) 设立了寻找大素数的奖项, 具体信息可以查询官网[1].
Through the EFF Cooperative Computing Awards, EFF will confer prizes of:
$50,000 to the first individual or group who discovers a prime number with at least 1,000,000 decimal digits (awarded Apr. 6, 2000)
$100,000 to the first individual or group who discovers a prime number with at least 10,000,000 decimal digits (awarded Oct. 22, 2009)
$150,000 to the first individual or group who discovers a prime number with at least 100,000,000 decimal digits
$250,000 to the first individual or group who discovers a prime number with at least 1,000,000,000 decimal digits
第一个被找出超过 万位的素数是 , 有 位数;
第一个被找出超过 万位的素数是 , 有 位数;
目前人们发现的最大素数是 , 有 位数, 这是前几天 (2024年10月21日) 最新的结果[2], 但仍然没有突破一亿位的大关.
五万美金和十万美金的奖已经被人拿走了, 但十五万和二十五万美金的奖项还在. 如果你能找到更大的素数, 是有机会获得奖金的.
回到原题. 如果题主真的是说"找到了最大的素数", 那么确实如其他答主所说, 不存在最大的素数, 因为有无穷多个素数; 如果是我理解的那个意思, 那么不妨了解一下素数检验法.
试除法
检验一个正整数 是否为素数最笨的方法是: 用所有小于 大于 的正整数去除 , 如果都不能整除, 那么 就是素数; 否则就是合数.
读过小学二年级的学生都很聪明, 他们发现只需要考虑小于等于 的正整数就行了, 因为如果某个大于 的正整数可以整除 , 那么商必定小于等于 , 所以在此之前我们就已经把 整除掉了.
初中生观察力更强, 他们发现只需要拿小于等于 的正整数去检验就够了, 理由和上面一样.
高中生又注意到一个细节, 在拿小于等于 的正整数试除时, 我们只需要拿素数去试除就够了, 因为如果 能被某个合数整除, 那么必定能被某个小于这个合数的素数整除.
因此试除法的策略是这样:
给定一个正整数 , 用每一个小于等于 的素数试除 . 如果某个素数将 整除了, 那么 就是合数; 如果都不能整除, 那么 是素数.
Wilson (威尔逊) 检验法
初等数论里有一个广为人知的结论:
Wilson定理: 是素数的充分必要条件是 .
这个定理给出了一个充分必要条件来做素性检验, 不需要像试除法一样一个个试过去.
如果 是一个相对较小的正整数, 我们可以很轻松地利用Wilson定理来确定 是不是素数; 但是当 很大时, 阶乘 的计算量是很大的.
Fermat (费马) 检验法
此外, 费马小定理提供了一个用来排除合数的检验法.
Fermat小定理: 如果 是素数, , 那么 .
如果某个自然数 不满足上述同余性, 就必定是合数; 但是这个定理的逆命题不成立, 一个正整数满足上述性质并不表明它就一定是素数, 也有可能是合数.
Miller–Rabin (米勒-拉宾) 检验法
类似地, 我们也有可以用来筛选疑似素数的检验法.
定义: 设 是正整数且满足 , 其中 是非负整数, 是正奇数. 我们称 通过以 为基的Miller (米勒) 检验, 如果
或者对某个 成立
Rabin概率素性检验法是基于以下定理:
定理: 设 是一个正整数. 取 个不同的小于 的正整数作为基, 对 做每一个基的米勒检验. 如果 是一个合数, 那么 通过所有 个检验的概率不超过 .
如果一个正整数能够多次通过以上检验, 就表明这个数很有可能是素数, 于是我们就可以把它筛选出来进一步研究.
Lucas-Lehmer (卢卡斯-雷默) 检验法
一般而言, 想要找到一个充分必要且高效的素性检验法并不容易; 但是对于梅森数却有这么一个定理.
目前我们发现的大素数大都是Mersenne (梅森) 素数.
定义: 设 是正整数, 我们称 为第 个梅森数; 如果 是一个素数, 并且 也是素数, 就称 为梅森素数.
一直以来, 很多人都致力于寻找更大的梅森素数, 而且还成立了互联网梅森素数大搜索 (Great Internet Mersenne Prime Search 简称GIMPS) 这么一个团队. 前些天发现的目前已知最大素数 就是GIMPS的志愿者找出来的.
对于梅森素数, 有一个非常高效的检验法:
Lucas-Lehmer定理: 设 是素数, 考虑梅森数 . 定义序列
那么 是素数的充分必要条件是 .
Lucas-Lehmer检验法运行起来非常快, 可以在 次位运算内确定 是否是素数.
前些天发现的目前已知最大素数 , 在最后的检验阶段就是用英伟达的GPU跑Lucas-Lehmer检验才最终确定为素数的.