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中的hashlib和base64加密模块使用实例
Sep 02 Python
Python正则表达式完全指南
May 25 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
对python 合并 累加两个dict的实例详解
Jan 21 Python
OpenCV图像颜色反转算法详解
May 13 Python
简单介绍python封装的基本知识
Aug 10 Python
django框架forms组件用法实例详解
Dec 10 Python
Python爬虫爬取、解析数据操作示例
Mar 27 Python
python实现三种随机请求头方式
Jan 05 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 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实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
php session和cookie使用说明
2010/04/07 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
Python写的一个简单DNS服务器实例
2014/06/04 Python
python 以16进制打印输出的方法
2018/07/09 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
报社实习生自荐信
2014/01/24 职场文书
部门活动策划方案
2014/08/16 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
地方白酒代理协议书
2014/10/25 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang