梅森尼数

程序地址:http://www.cheemoedu.com/exercise/25

问题描述:

法国数学家梅森尼对这类形如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)
时间: 2024-08-28 19:29:30

梅森尼数的相关文章

#【数学】【数论】几个特殊的数

素数 大于1且不被其他整数(除了1和其本身)整除的整数. 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数. 示例:2,3,5,7,11,13,17,19,23,29,31,37,39,41... 回文数 “回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等.在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number). 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数

Python 趣味百题

趣味整数 1 不重复的3位数 -易 2 水仙花数 -易 3 完全数 -中 4 相亲数 -中 5 黑洞数 -中 6 勾股数 -易 7 自守数 -易 8 3位反序数 -中 趣味素数 1 素数 -中 2 孪生素数 -中 3 金蝉素数 -中 4 可逆素数 -中 5 回文素数 -中 6 平方回文素数 -中 7 梅森尼数 -中 8 哥德巴赫猜想 -中 9 等差素数数列 -中 趣味图形 1 回型矩阵 -中 2 九九乘法表 -易 3 杨辉三角 -易 数学问题 1 天平秤物 -难 2 黑色星期五 -易 3 存钱问

Python 素数判断;以及默尼森数

1. 素数/质数 只能被2或者本身整除的正整数. 2. 默尼森数 P是素数且M也是素数,并且满足等式M=2^P-1,则称M为默尼森数. 编程小要求: 输出前5个默尼森数 1)最外层循环找素数 中间层循环对已有素数表找默尼森数 内层循环对某个素数检查M=2^P-1 1 # -*- coding: cp936 -*- 2 from math import sqrt 3 4 # 素数初始化 5 p=[] 6 # 默尼森数表初始化 7 mns=[] 8 9 def is_sushu(x): 10 if

poj 2975 Nim 尼姆博弈,求取胜方案数

Nim Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5002   Accepted: 2313 Description Nim is a 2-player game featuring several piles of stones. Players alternate turns, and on his/her turn, a player's move consists of removing one or mor

NEFU120 梅森素数【Lucas-Lehmer判定】

题目链接: http://acm.nefu.edu.cn/JudgeOnline/problemshow.php?problem_id=120 题目大意: 给一个数p,若Mp = 2^p - 1是梅森素数,则输出"yes",否则输出"no". 思路: 这道题p小于62.Mp就小于2^62-1.如果直接进行素数判别会比较慢,用筛法的话数据量 又会很大.所以这里用了Lucas-Lehmer判定法则. Lucas-Lehmer判定法则具体步骤: 如果要判定的整数位Mp =

hdu 1850 Being a Good Boy in Spring Festival (尼姆博弈)

Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4658    Accepted Submission(s): 2781 Problem Description 一年在外 父母时刻牵挂春节回家 你能做几天好孩子吗寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场悄悄给爸爸买

Being a Good Boy in Spring Festival(尼姆博弈)

Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 51 Accepted Submission(s): 45   Problem Description 一年在外 父母时刻牵挂春节回家 你能做几天好孩子吗寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场悄悄给爸爸买个小礼物主动地

【C语言训练】尼科彻斯定理

题目描述验证尼科彻斯定理,即:任何一个正整数的立方都可以写成一串连续奇数的和. 输入任一正整数 输出该数的立方分解为一串连续奇数的和 样例输入13样例输出13*13*13=2197=157+159+161+163+165+167+169+171+173+175+177+179+181提示本题是一个定理,我们先来证明它是成立的. 对于任一正整数a,不论a是奇数还是偶数,整数(a×a-a+1)必然为奇数. 构造一个等差数列,数列的首项为(a×a-a+1),等差数列的差值为2(奇数数列),则前a项的和

最强头脑决定战中的尼姆博弈

最近看了一个日本综艺——最强头脑王决定战,顿觉以前看过的国内烧脑节目,类似“一站到底”之流与之相比真是相形见绌.“一站”说到底只是比谁题库背得熟,而日本这个真的是记忆.计算.观察.推理等各种能力的综合考察,比赛选手们各显神通,观众如我看得也是如痴如醉. 其中比赛到第二轮时有一道题如下:有四堆不同色的棋子,每堆分别有3.5.6.7枚,由选手和电脑开始依次从其中取出一些棋子,每次只可取同一堆的任意枚,如此交替直至取完所有棋子,谁取到最后一枚棋子谁输. 当时水上小哥不假思索地取子很轻松就赢了,让评委们