欢迎光临散文网 会员登陆 & 注册

Python编程算法【四十三】梅森素数

2023-05-14 21:08 作者:SPC编程爱好者  | 我要投稿

【案例内容】

   梅森数(Mersenne Prime)指的是形如 2%5En-1%20的正整数,其中指数n是素数,记为M_%7Bn%7D%20
如果一个梅森数是素数,则称其为梅森素数。例如:2%5E2-1%3D3%20  2%5E3-1%3D7%20 都是梅森素数。但是n=11时,M_%7Bn%7D%3DM_%7B11%7D%3D2%5E%7B11%7D-1%3D2048-1%3D2047%3D23%5Ctimes89%20,显然不是梅森素数。

    请求出指数n<20的所有梅森素数。


【解题思路】

   本题的解答思路:先找出20以内的素数,再通过梅森数的公式,求出结果,若该结果也是一个素数,那么该梅森数就是梅森素数。具体操作是,设定一个判断素数的函数,接着用for循环遍历2~19,找出其中的素数,然后代入 2%5En-1%20 求出结果,最后判断该结果是否为素数,若为素数那就是梅森素数。具体代码如下:


【Python代码】

总共找到7组梅森素数

1722年,瑞士数学大师欧拉证明了 2%5E%7B31%7D-1%3D2147483647%20 是一个素数,它共有10位数,成为当时世界上已知的最大素数。迄今为止,人们仅发现了47个梅森素数。梅森素数历来都是数论研究中的一项重要内容,也是当今科学探索中的热点和难点问题。

Python编程算法【四十三】梅森素数的评论 (共 条)

分享到微博请遵守国家法律