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 相关文章推荐
一个超级简单的python web程序
Sep 11 Python
python计算auc指标实例
Jul 13 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
使用python 写一个静态服务(实战)
Jun 28 Python
python的range和linspace使用详解
Nov 27 Python
python的time模块和datetime模块实例解析
Nov 29 Python
python内置模块collections知识点总结
Dec 19 Python
python 实现屏幕录制示例
Dec 23 Python
python 爬取古诗文存入mysql数据库的方法
Jan 08 Python
Django如何使用jwt获取用户信息
Apr 21 Python
Python如何获取文件指定行的内容
May 27 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 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
单位速度在实战中的运用
2020/03/04 星际争霸
php获取文章上一页与下一页的方法
2014/12/01 PHP
javascript 节点排序 2
2011/01/31 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
深入学习Python中的装饰器使用
2016/06/20 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
一套Java笔试题
2016/08/20 面试题
物流仓储计划书
2014/01/10 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
村抢险救灾方案
2014/05/09 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
《检阅》教学反思
2016/02/22 职场文书
求职信如何撰写?
2019/05/22 职场文书
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers