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程序员开发中常犯的10个错误
Jul 07 Python
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
Python随机生成身份证号码及校验功能
Dec 04 Python
python 将大文件切分为多个小文件的实例
Jan 14 Python
Python制作词云图代码实例
Sep 09 Python
py-charm延长试用期限实例
Dec 22 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 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中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
Javascript验证方法大全
2015/09/21 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
Python中map和列表推导效率比较实例分析
2015/06/17 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
Python异常处理操作实例详解
2018/08/28 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
基于Python的PIL库学习详解
2019/05/10 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
综合办公室个人的自我评价
2013/12/22 职场文书
社区党总支书记先进事迹材料
2014/01/24 职场文书
搞笑爱情保证书
2014/04/29 职场文书
党员活动总结
2015/02/04 职场文书
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫
React更新渲染原理深入分析
2022/12/24 Javascript