python输出第n个默尼森数的实现示例
作者:VivianQiao93 时间:2022-08-12 21:07:25
经典程序设计问题:找第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))
来源:https://blog.csdn.net/Viviancoder/article/details/104722776
标签:python,默尼森数
0
投稿
猜你喜欢
Python urllib3软件包的使用说明
2023-08-04 13:51:31
MySQL 1303错误的解决方法(navicat)
2024-01-25 21:24:42
.Net Core下使用Dapper的方法
2023-07-16 17:19:17
基于Python绘制世界疫情地图详解
2021-11-23 09:10:36
python 名称空间与作用域详情
2021-06-10 23:12:38
OpenCV模板匹配matchTemplate的实现
2021-08-09 15:51:51
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2022-12-12 09:07:09
XMLHTTP 使用代理获取数据asp代码
2010-03-22 14:40:00
python采用getopt解析命令行输入参数实例
2022-05-10 11:08:00
表格可读性提升分析
2010-05-19 13:03:00
Python 不设计 do-while 循环结构的理由
2021-08-04 11:55:19
通过按钮实时切换CSS样式 实现CSS换肤的实例
2008-07-17 12:55:00
Python基础之变量的相关知识总结
2021-05-09 00:16:06
pytorch加载自定义网络权重的实现
2022-06-16 14:39:10
MySQL中的多字段相同数据去重复
2024-01-17 11:21:21
Python3.5迭代器与生成器用法实例分析
2022-11-03 14:50:47
面向对象的XHTML与CSS编程
2008-01-11 13:37:00
MacOS 下安装 MySQL8.0 登陆 MySQL的方法
2024-01-19 11:30:02
python爬虫Scrapy框架:媒体管道原理学习分析
2022-11-23 15:07:03
Python操作word常见方法示例【win32com与docx模块】
2022-09-22 13:12:33