python输出第n个默尼森数的实现示例

 更新时间:2020年03月08日 11:42:10   作者:VivianQiao93  
这篇文章主要介绍了python输出第n个默尼森数的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

经典程序设计问题:找第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中操作时间之strptime()方法的使用

    在Python中操作时间之strptime()方法的使用

    这篇文章主要介绍了在Python中操作时间之strptime()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 用Python和MD5实现网站挂马检测程序

    用Python和MD5实现网站挂马检测程序

    系统管理员通常从svn/git中检索代码,部署站点后通常首先会生成该站点所有文件的MD5值,如果上线后网站页面内容被篡改(如挂马)等,可以比对之前生成MD5值快速查找去那些文件被更改,为了使系统管理员第一时间发现,可结合crontab或nagios等工具
    2014-03-03
  • 如何通过Python的pyttsx3库将文字转为音频

    如何通过Python的pyttsx3库将文字转为音频

    pyttsx3是一个开源的Python文本转语音库,可以将文本转换为自然的人类语音,这篇文章主要介绍了如何通过Python的pyttsx3库将文字转为音频,需要的朋友可以参考下
    2023-04-04
  • Python随机函数random()使用方法小结

    Python随机函数random()使用方法小结

    random()是Python中生成随机数的函数,是由random模块控制,random()函数不能直接访问,需要导入random 模块,然后再通过相应的静态对象调用该方法才能实现相应的功能
    2018-04-04
  • Python数据库安装及MySQL Connector应用教程

    Python数据库安装及MySQL Connector应用教程

    这篇文章主要为大家介绍了Python数据库安装及MySQL Connector应用教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • python使用PIL模块获取图片像素点的方法

    python使用PIL模块获取图片像素点的方法

    今天小编就为大家分享一篇python使用PIL模块获取图片像素点的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 基于Python实现格斗小游戏的示例代码

    基于Python实现格斗小游戏的示例代码

    格斗游戏,曾经是街机厅里最火爆的游戏之一,甚至可以把“之一”去掉,那个年代的格斗游戏就是街机游戏的王。本文就来用Python实现一个简单的格斗游戏,感兴趣的可以了解一下
    2023-03-03
  • Keras实现Vision Transformer VIT模型示例详解

    Keras实现Vision Transformer VIT模型示例详解

    这篇文章主要为大家介绍了Keras实现Vision Transformer VIT模型示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python中的循环语法使用指南

    python中的循环语法使用指南

    这篇文章主要给大家介绍了关于python中循环语法使用的相关资料, 循环语句是Python中的一种基本语句,用于重复执行一段代码。在Python中,循环语句分为for和while两种,需要的朋友可以参考下
    2023-08-08
  • python实现手势识别的示例(入门)

    python实现手势识别的示例(入门)

    这篇文章主要介绍了python实现手势识别的示例(入门),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论