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中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 Python
Python递归遍历列表及输出的实现方法
May 19 Python
在Python中操作字符串之rstrip()方法的使用
May 19 Python
mac 安装python网络请求包requests方法
Jun 13 Python
python3解析库BeautifulSoup4的安装配置与基本用法
Jun 26 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
Python获取统计自己的qq群成员信息的方法
Nov 15 Python
在Python中预先初始化列表内容和长度的实现
Nov 28 Python
详解Pandas 处理缺失值指令大全
Jul 30 Python
Python request post上传文件常见要点
Nov 20 Python
python 闭包函数详细介绍
Apr 19 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中批量替换文件名的实现代码
2011/07/20 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
js常用DOM方法详解
2017/02/04 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
Python绘制热力图示例
2019/09/27 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
Python基于locals返回作用域字典
2020/10/17 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
运动会广播稿20字
2014/02/18 职场文书
品牌宣传方案
2014/03/21 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
介绍信格式样本
2015/05/05 职场文书
欢迎新生标语2015
2015/07/16 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript
Go归并排序算法的实现方法
2022/04/06 Golang
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript