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去除所有html标签的方法
May 05 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
TensorFlow利用saver保存和提取参数的实例
Jul 26 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
Oct 22 Python
在python中按照特定顺序访问字典的方法详解
Dec 14 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
Apr 29 Python
基于python的Paxos算法实现
Jul 03 Python
Python基于当前时间批量创建文件
May 07 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 Python
Pycharm Plugins加载失败问题解决方案
Nov 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
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
去除html代码里面的script正则方法
2016/05/19 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
python集合类型用法分析
2015/04/08 Python
python使用电子邮件模块smtplib的方法
2016/08/28 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
Python补齐字符串长度的实例
2018/11/15 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
Born鞋子官网:Born Shoes
2017/04/06 全球购物
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
2014年父亲节活动方案
2014/03/06 职场文书
室内设计专业自荐信
2014/05/31 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python