这篇文章将要介绍梅森素数的定义以及在Python中实现的方法。

一、梅森素数

梅森数(Mn)指的是形如2n - 1的正整数,其中指数 n 是素数。

如果一个梅森数是素数,则称其为梅森素数。例如22-1=3、23-1=7都是梅森素数。

当n=2,3,5,7时,Mn都是素数,但n = 11时,Mn = M11 = 211 - 1 = 2047 = 23 × 89,显然 M11 不是梅森素数。

目前仅发现 51 个梅森素数,最大的是 M82589933 (即2的82589933次方减1),有24862048位。

梅森素数历来都是数论研究中的一项重要内容,也是当今科学探索中的热点和难点问题。

(以上来自 @潘石屹 微博话题 #潘石屹用Python解决100个问题#)

二、在Python中的实现方法

以下是实现求指数 n < 20 以内的所有梅森素数的源代码。

import math

# 定义判断一个数是否为素数的函数

def

isprime(num):

tmp = int(math.sqrt(num))

for

i

in

range(2, tmp + 1):

if

num % i == 0:

return

False

return

True

N = 20  # 定义指数n的最大值

for

n

in

range(2

python穷举法求素数_使用Python求指数为20以内的所有梅森素数相关推荐

  1. python穷举法_python 穷举指定长度的密码例子

    本程序可根据给定的字符字典,穷举指定长度的所有字符串: def get_pwd(str, num): if(num == 1): for x in str: yield x else: for x i ...

  2. python穷举法列举_穷举法应用举例.doc

    无 止 境 穷举法应用举例 在数学问题中, 有一些需要计算总数或种类的趣题, 因其数量关系比较隐蔽, 很难找到"正统"的方式解答,让人感到无从下手.对此,我们可以先初步估计 其数目 ...

  3. java穷举法解方程_枚举法(穷举法)_Java语言程

    枚举法(穷举法)_Java语言程 3.5.1 枚举法(穷举法) 枚举法就是把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出. [例3-20] 百元买百鸡:用一百元钱买一百只鸡.已知公鸡5元/ ...

  4. 用python穷举法判断素数_Python如何判断素数

    判断一个给定的正整数是否素数 输入格式: 输入在第一行给出一个正整数n(≤ 10),随后n行,每行给出一个小于1000000 的需要判断的正整数 输出格式: 对每个需要判断的正整数,如果它是素数,则在 ...

  5. python穷举法搬砖_python 穷举法 算24点(史上最简短代码)-阿里云开发者社区

    # 作者:hhh5460 # 时间:2017年6月3日 import itertools deftwentyfour(cards): '''史上最短计算24点代码''' for nums in ite ...

  6. python嵌套列表法实现树_在python中创建递归迭代嵌套列表的“数据树”路径

    我正在尝试创建一个"路径"列表,该列表中的每个项目都有.例如输入列表:_list = [[x,x,x], [[x,x,x],[x,x,x]], [x,x,x]] 期望输出: ^{p ...

  7. java 穷举法求水仙花数_常用算法-穷举法

    穷举法又称为枚举法,它是在计算机算法设计中用得最多的一种编程思想.它的实现方式是:在已知答案范围的情况下,依次地枚举该范围内所有的取值,并对每个取值进行考查,确定是否满足条件.经过循环遍历之后,筛选出 ...

  8. 求100以内素数的方法(筛选法,穷举法,穷举法优化)

    一.基本思想 //质数(素数)是指在大于1的自然数中除了1和它本身以外不再有其他因数的自然数. (1)判断一个数n是不是素数,可以用2到(int)sqrt(n)之间的所有整数去除n,看能否整除,如果都 ...

  9. python求两个数的最大公约数穷举法_C++求最大公约数四种方法解析

    C++求最大公约数的四种方法思路,供大家参考,具体内容如下 将最近学的求最大公约数的四种方法总结如下: 第一种:穷举法之一 解释:拿其中一个数出来,用一个临时变量(tem)保存,每次都把那两个数除以这 ...

最新文章

  1. R语言构建logistic回归模型并评估模型:模型预测结果抽样、可视化模型分类预测的概率分布情况、使用WVPlots包绘制ROC曲线并计算AUC值
  2. NanoPi NEO Air使用八:编写个简单的驱动和应用程序
  3. su一键封面插件_插件分享丨一键制作SU爆炸分析图插件分享
  4. python之人脸识别
  5. CCF-百度松果基金正式“亮出”申报细则,加码产学研前沿合作
  6. InkImageDataSetGenerator-开源一个可用于机器学习的书写轨迹图片生成的小工具
  7. Bit Digital反驳美国做空机构J Capital对其比特币业务的虚假指控
  8. Java基础复习——继承机制
  9. 计算机二级考试先后顺序,(常文档排按照计算机二级考试试题顺序编写.doc
  10. 无线接入控制服务器(ac),网络ac和ap是什么意思(图文)
  11. PC微信逆向之发送消息
  12. Linux之查看物理主机的CPU温度
  13. 服务器本地文件无法复制粘贴,本地电脑与服务器突然无法直接使用复制粘贴
  14. jdk12switch表达式
  15. java md5类_java的md5加密类
  16. [Unity][C#]Regex正则表达式判断字符串
  17. mysql修改索引语句_mysql——创建索引、修改索引、删除索引的命令语句
  18. 利用matlab M_Map工具制作GPS测站分布图
  19. 2007 Simulation message
  20. 82.Hive SQL插入动态分区的异常分析

热门文章

  1. 二自由度云台扫描算法_智能盒子oj
  2. 【IoT】硬件选型:如何正确区分电子线的端子型号?
  3. [Spark的TopN算法实现]
  4. SQL | 多表连接 | 销售订单+产品明细+销售网点表
  5. h5中利用SQL实现Web留言本
  6. 如何在没有iTunes的情况下备份和还原iPhone或iPad
  7. iScroll5 API速查
  8. Java粒子系统 - 多发礼花
  9. 一键配置linux centos,CentOS6和CentOS7 一键更换内核,一键安装锐速[lotServer]
  10. react 组件引用组件_动画化React组件