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实现命令行闹钟脚本实例
Sep 05 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
Python中一行和多行import模块问题
Apr 01 Python
详解Python3的TFTP文件传输
Jun 26 Python
python实现爬取图书封面
Jul 05 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
在Mac上删除自己安装的Python方法
Oct 29 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
May 15 Python
python speech模块的使用方法
Sep 09 Python
Opencv 图片的OCR识别的实战示例
Mar 02 Python
Python图片验证码降噪和8邻域降噪
Aug 30 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 星际争霸
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
PHP中Array相关函数简介
2016/07/03 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
javascript奇异的arguments分析
2010/10/20 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
express启用https使用小记
2019/05/21 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
《苏珊的帽子》教学反思
2014/04/07 职场文书
询价采购方案
2014/06/09 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
校车安全责任书
2014/08/25 职场文书
学校安全管理制度
2015/08/06 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers