python输出第n个默尼森数的实现示例


Posted in Python onMarch 08, 2020

经典程序设计问题:找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数。例如,P=5,M=2P-1=31,5和31都是素数,因此31是默尼森数。(31是第3个默尼森数)

该程序的功能可以分为两部分设计:一是判断是否为素数,二是输出第n个Monisen数。

对于一来说,根据素数概念,只需要检测从2到其平方根是否有因子,若有则不为素数。对于二来说,循环计算M=2p-1并调用一的函数即可完成

from math import sqrt,pow
 
def prime(num):
  """检测num是不是质数"""
  k = sqrt(num)
  for i in range(2,int(k+1)):
    if num % i == 0:
      return False
  
  return True
 
def monisen(no):
  """找出第no个莫尼森数"""
  n = 0
  num = 2
  while n < no:
    m = pow(2,num) - 1
    if prime(num) == True and prime(m) == True:
      # 只有num和m都为质数时,n才会加一,即n是莫尼森数的序号
      n += 1
    num += 1
  return int(m),num-1
 
# 输出前五个莫尼森数M 以及对应的质数P
for i in range(1,6):
  print(monisen(i))

到此这篇关于python输出第n个默尼森数的实现示例的文章就介绍到这了,更多相关python 输出默尼森数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 Python
python可视化实现代码
Jan 15 Python
Python比较配置文件的方法实例详解
Jun 06 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
Python字符串处理的8招秘籍(小结)
Aug 13 Python
python的range和linspace使用详解
Nov 27 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 Python
如何把python项目部署到linux服务器
Aug 26 Python
python excel和yaml文件的读取封装
Jan 12 Python
Python实现简繁体转换
Jun 07 Python
Tensorflow之梯度裁剪的实现示例
Mar 08 #Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 #Python
Django 自定义404 500等错误页面的实现
Mar 08 #Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 #Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 #Python
Django接收照片储存文件的实例代码
Mar 07 #Python
Python实现对adb命令封装
Mar 06 #Python
You might like
PHP新手上路(九)
2006/10/09 PHP
PHP 截取字符串专题集合
2010/08/19 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
2011/05/06 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
全面分析Python的优点和缺点
2018/02/07 Python
使用python3构建文件传输的方法
2019/02/13 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
Python dict的常用方法示例代码
2020/06/23 Python
天猫精选:上天猫,就够了
2016/09/21 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
少先队入队活动方案
2014/02/08 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
年度考核自我鉴定
2014/03/19 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
个人股份转让协议书范本
2014/10/26 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
关于观后感的作文
2015/06/18 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL