文档章节

梅森尼数

寂寞暴走伤
 寂寞暴走伤
发布于 2016/07/14 19:32
字数 357
阅读 54
收藏 0

问题描述:

法国数学家梅森尼对这类形如2^n-1的素数特别感兴趣,做过很多有意义的工作,后人把此类数命名为梅森尼数。
已经证明了,如果2^n-1是素数,则幂指数n必须是素数,然而,反过来并不对,当n是素数时,2^n-1不一定是素数。例如,人们已经找出2^11-1是一个合数,23可以除尽它,2^23-1是一个合数,47可以除尽它。
编程找出指数n在(2,50)中的梅森尼数。


我的代码:

import math
def prime(m):
    count=0
    for i in range(2,int(math.sqrt(m))+1):
        if m%i==0:
            count=1
    if count==0:
        return True
    else:
        return False
for j in range(2,50):
    if prime(2**j-1) and prime(j):
        print j,2**j-1


结果:

幂   梅森尼数

 2     3

 3     7

 5     31

 7     127

 13    8191

 17    131071

 19    524287

 31    2147483647


我的思路:

过程很简单,就是定义一个函数用来判断传入的参数是否为素数,然后遍历2到50之间的数,输出同时满足指数是素数,对应的2^n-1也是素数的数即可;


示例代码:

import math
def isPrimeNumber(num):
    i = 2
    x = math.sqrt(num)
    while i <= x:
        if num%i == 0:
            return False
        i += 1
    return True
def masonNumber(num):
    arr = []
    for i in xrange(2, num + 1):
        if isPrimeNumber(i) and isPrimeNumber(2**i - 1):
            arr.append(2**i - 1)
    return arr
print masonNumber(50)


题目出处:http://www.cheemoedu.com/exercise/25

© 著作权归作者所有

共有 人打赏支持
上一篇: 素数
下一篇: 孪生素数
寂寞暴走伤
粉丝 0
博文 40
码字总数 20969
作品 0
南阳
运维
私信 提问
Groupon总裁兼首席运营官所罗门将辞职

日前,据国外媒体报道,美国团购网站Groupon的总裁兼首席运营官、前雅虎高管罗布·所罗门(Rob Solomon)将下课。 虽然目前还不很清楚所罗门离职的原因,但此事很突然。鉴于Groupon正处在快速...

疯语者
2011/03/23
172
0
NASA证实太空旅行对人体影响甚大

乘坐太空飞船长时间“旅行”,对宇航员的影响远非此前所想。据《科学美国人》近日报道,美国国家航空航天局(NASA)的“双胞胎研究”项目的初步结果显示,太空旅行强烈地影响着基因的表达方式...

软件达人
2017/11/01
0
0
25辆无人车进校园 15分钟外卖到宿舍 它们什么来头?

选自 I Washington Post 编译 I 网易智能 参与 I 小小 【网易智能讯1月29日消息】这个带轮子的白色小机器人开始了它在Blaze Pizza比萨店外的旅程。它快速右转,从一群匆忙的学生旁边路过,越...

网易智能
01/29
0
0
招聘邮件显示Groupon将入华:欲3个月招1000人

【搜狐IT消息】(文/何峰)1月7日消息,搜狐IT获悉一封网上泄露的发自Groupon副总裁的招聘邮件,邮件显示Groupon正筹备入华,目前已开始招聘人才,并希望在入华后三个月内使员工规模达到100...

红薯
2011/01/07
1K
13
柬埔寨副首相将出席2018东盟区块链高峰论坛

不管你拒绝还是接受,区块链的时代已经来了,有人乘风而行赚得盆体满钵,有人懊悔当初没有慧眼识珠。 如今比特币的身价扶摇直上,以太币(ETH),瑞波币(XRP)等数字货币也跟着身价飞涨。想...

未来财经
2018/02/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。

import java.util.Stack; public class Solution { public boolean IsPopOrder(int [] pushA,int [] popA) { if(pushA.length==0||popA.length==0) return false; Stack......

南桥北木
19分钟前
0
0
互联网浪潮下,Java程序员如何追赶技术革新的脚步?

一:时代背景 身处互联网行业的我们一直处在变革的最前端,受到行业发展浪潮的洗礼,不停歇地追赶着技术革新的脚步。特别是近几年来, 互联网架构不断演化,经历了从集中式架构到分布式架构,...

老道士
26分钟前
0
0
flink系列(9)-flink启动流程分析

连续写了几天的flink StreamGraph的代码,今天闲来说一下flink的启动

yiduwangkai
39分钟前
0
0
取变量的地址赋值给另一个变量,C通过,C++编译出错

取变量的地址赋值给另一个变量,C通过。正常运行,C++编译出错。 代码如下: #include <stdio.h>int main(int argc, char *argv[]){int x = 3;int *p = &x;int y = p;/*c ...

SamXIAO
今天
1
0
利用隐写术实施攻击

尽管隐写术是一种低频攻击途径,但网络犯罪分子已经开始利用它结合社交媒体的普遍性和快速传播性来传递恶意有效负载。 低调但有效的隐写技术虽然是旧把戏,但将代码隐藏在看似正常的图像中,...

Linux就该这么学
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部