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基础while循环及if判断的实例讲解
Aug 25 Python
Python基于回溯法子集树模板解决0-1背包问题实例
Sep 02 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
Pytorch 实现权重初始化
Dec 31 Python
Python模块future用法原理详解
Jan 20 Python
Python tkinter模版代码实例
Feb 05 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
Apr 22 Python
Python参数传递实现过程及原理详解
May 14 Python
Python3 如何开启自带http服务
May 18 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
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
Python  连接字符串(join %)
2008/09/06 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
用Python实现读写锁的示例代码
2018/11/05 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
python右对齐的实例方法
2020/07/05 Python
python 利用zmail库发送邮件
2020/09/11 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
老公保证书范文
2014/04/29 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
学生安全责任书范本
2014/07/24 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android