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编写屏幕截图程序方法
Feb 18 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
Python 字符串与二进制串的相互转换示例
Jul 23 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
python实现简易学生信息管理系统
Apr 05 Python
基于Python获取照片的GPS位置信息
Jan 20 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
Python 如何实现访问者模式
Jul 28 Python
用python删除文件夹中的重复图片(图片去重)
May 12 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 Python
python实现MD5进行文件去重的示例代码
Jul 09 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字符串函数的总结分析
2013/06/05 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
js的with语句使用方法
2007/09/21 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
Python实现多行注释的另类方法
2014/08/22 Python
Python计算程序运行时间的方法
2014/12/13 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
python实发邮件实例详解
2019/11/11 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
简历中的自我评价怎么写
2014/01/29 职场文书
婚礼秀策划方案
2014/05/19 职场文书
图书室标语
2014/06/21 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
名人演讲稿范文
2014/09/16 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
自荐信范文
2019/05/20 职场文书
golang import自定义包方式
2021/04/29 Golang
SpringBoot生成License的实现示例
2021/06/16 Java/Android
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电
MySql分区类型及创建分区的方法
2022/04/13 MySQL