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模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
Python自定义类的数组排序实现代码
Aug 28 Python
Python编程生成随机用户名及密码的方法示例
May 05 Python
浅谈python中的正则表达式(re模块)
Oct 17 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
python如果快速判断数字奇数偶数
Nov 13 Python
python统计字符的个数代码实例
Feb 07 Python
Python如何将模块打包并发布
Aug 30 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 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面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
jQuery 对Select的操作备忘记录
2011/07/04 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
Python while 循环使用的简单实例
2016/06/08 Python
python 生成器协程运算实例
2017/09/04 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
自我评价的写作规则
2014/01/06 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
清明节主题班会
2015/08/14 职场文书
《比的意义》教学反思
2016/02/18 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技