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 相关文章推荐
numpy.delete删除一列或多列的方法
Apr 03 Python
Django 浅谈根据配置生成SQL语句的问题
May 29 Python
django用户登录和注销的实现方法
Jul 16 Python
Python打包方法Pyinstaller的使用
Oct 09 Python
Python对excel文档的操作方法详解
Dec 10 Python
Python Pywavelet 小波阈值实例
Jan 09 Python
Python命令行click参数用法解析
Dec 19 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
解决pyqt5异常退出无提示信息的问题
Apr 08 Python
python中JWT用户认证的实现
May 18 Python
python 中yaml文件用法大全
Jul 04 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相当简单的分页类
2008/10/02 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
jquery处理json对象
2014/11/03 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
基于python编写的微博应用
2014/10/17 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
pow在python中的含义及用法
2019/07/11 Python
python之生产者消费者模型实现详解
2019/07/27 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
安全标准化汇报材料
2014/02/03 职场文书
培训协议书范本
2014/04/22 职场文书
刑事代理授权委托书
2014/09/17 职场文书
会计稽核岗位职责
2015/04/13 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
vue实现拖拽交换位置
2022/04/07 Vue.js