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使用socket创建tcp服务器和客户端
Apr 12 Python
基于python requests库中的代理实例讲解
May 07 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
浅谈pycharm使用及设置方法
Sep 09 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
Python 实现将数组/矩阵转换成Image类
Jan 09 Python
解决Pycharm 导入其他文件夹源码的2种方法
Feb 12 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
学python需要去培训机构吗
Jul 01 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
python 如何执行控制台命令与操作剪切板
May 20 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的伪静态模式
2015/12/31 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
php fread函数使用方法总结
2019/05/28 PHP
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
JavaScript reduce和reduceRight详解
2016/10/24 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python paramiko模块的使用示例
2018/04/11 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
Python魔法方法功能与用法简介
2019/04/04 Python
python中时间模块的基本使用教程
2019/05/14 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
python tornado修改log输出方式
2019/11/18 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
AJAX应用和传统Web应用有什么不同
2013/08/24 面试题
银行金融服务方案
2014/06/11 职场文书
民主生活会剖析材料
2014/09/30 职场文书
2014年仓库工作总结
2014/11/20 职场文书
新员工入职感言范文!
2019/07/04 职场文书