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 输出默尼森数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 老生常谈进程线程协程那些事儿

    老生常谈进程线程协程那些事儿

    下面小编就为大家带来一篇老生常谈进程线程协程那些事儿。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • python编译pyc文件的过程解析

    python编译pyc文件的过程解析

    pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,这篇文章主要介绍了python编译pyc文件,需要的朋友可以参考下
    2021-09-09
  • Python批量生成字幕图片的方法详解

    Python批量生成字幕图片的方法详解

    这篇文章主要为大家详细介绍了如何利用Python语言实现批量生成字幕图片用于视频剪辑,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-05-05
  • Python中如何向函数传递列表

    Python中如何向函数传递列表

    本文主要介绍了Python中如何向函数传递列表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • python自动填写问卷星问卷以及提交问卷等功能

    python自动填写问卷星问卷以及提交问卷等功能

    这篇文章主要给大家介绍了关于python自动填写问卷星问卷以及提交问卷等功能的相关资料,包括使用Selenium库模拟浏览器操作、定位元素、填写表单等,通过本文的学习,读者可以了解如何利用Python自动化技术提高问卷填写效率,需要的朋友可以参考下
    2023-03-03
  • Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)

    Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)

    今天小编就为大家分享一篇Tensorflow tf.dynamic_partition矩阵拆分示例(Python3) ,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 如何利用Python和matplotlib更改纵横坐标刻度颜色

    如何利用Python和matplotlib更改纵横坐标刻度颜色

    对于图表来说最简单的莫过于作出一个单一函数的图像,下面这篇文章主要给大家介绍了关于如何利用Python和matplotlib更改纵横坐标刻度颜色的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Django中模型Model添加JSON类型字段的方法

    Django中模型Model添加JSON类型字段的方法

    这篇文章主要介绍了Django中模型Model添加JSON类型字段的方法,实例分析了Python的Django框架模型使用技巧,需要的朋友可以参考下
    2015-06-06
  • python简单实现操作Mysql数据库

    python简单实现操作Mysql数据库

    本文给大家分享的是在python中使用webpy实现简单的数据库增删改查操作的方法,非常的简单,有需要的小伙伴可以参考下
    2018-01-01
  • python+opencv实现堆叠图片

    python+opencv实现堆叠图片

    这篇文章主要为大家详细介绍了python+opencv实现堆叠图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论