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脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
python简单实现基数排序算法
May 16 Python
python 自动化将markdown文件转成html文件的方法
Sep 23 Python
Python多线程实现同步的四种方式
May 02 Python
使用Python读取二进制文件的实例讲解
Jul 09 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
python导入坐标点的具体操作
May 10 Python
Python使用Turtle库绘制一棵西兰花
Nov 23 Python
python匿名函数lambda原理及实例解析
Feb 07 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 Python
pytorch 运行一段时间后出现GPU OOM的问题
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实现的简易扫雷游戏实例
2015/07/09 PHP
PHP安全下载文件的方法
2016/04/07 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
利用node.js如何创建子进程详解
2017/12/09 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
Python实现将xml导入至excel
2015/11/20 Python
Python使用wxPython实现计算器
2018/01/30 Python
python读取文件名并改名字的实例
2019/01/07 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
大学生入党思想汇报
2014/01/14 职场文书
培训主管岗位职责
2014/02/01 职场文书
环境卫生标语
2014/06/09 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
2014年环保局工作总结
2014/12/11 职场文书
邀请书格式范文
2015/02/02 职场文书
百年校庆感言
2015/08/01 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers