美文网首页
寻找第n个默尼森数

寻找第n个默尼森数

作者: 极速魔法 | 来源:发表于2017-11-05 19:11 被阅读316次

找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数。例如,P=5,M=2P-1=31,5和31都是素数,因此31是默尼森数。

#! /usr/bin/python
# -*- coding:utf-8 -*-
import math

def prime(num):
    if num <= 1:
        return False
    elif num == 2:
        return True
    else:
        for i in range(2, int(math.sqrt(num)) + 1):
            if num % i == 0:
                return False
        return True

#param no,return the no monisen number
def monisen(no):
    listPrime = [2]
    listMonisen = [3]
    #search the odd number,even number must not prime number
    i = 3
    #first monisen number
    if no == 1:
        return 3
    else:
        while True:

            if prime(i):
                temp = 2 ** i - 1
                if prime(temp):
                    listMonisen.append(2 ** i - 1)
                    if len(listMonisen) == no:
                        return listMonisen[no - 1]
                    else:
                        i += 2
                else:
                    i += 2
            else:
                i += 2


if __name__ == '__main__':

    print(monisen(2))

相关文章

  • 寻找第n个默尼森数

    经典程序设计问题:找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数。例如,P=5...

  • 寻找第n个默尼森数

    找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数。例如,P=5,M=2P-1=3...

  • 小练习-默尼森数

    找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数。例如,P=5,M=2P-1=3...

  • 自学Python:求梅森素数

    什么是梅森素数? 先说梅森数,梅森数(Mersenne Prime)指的是形如2n-1的正整数,其中指数n是素数,...

  • 寻找丑数

    寻找第N个丑数 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因...

  • lintcode 丑数

    设计一个算法,找出只含素因子2,3,5 的第 n 大的数。直接寻找丑数,由定义可知,丑数是由2m,3n,5^l,因...

  • 掌握 NumPy 常用函数 II

    掌握 NumPy 常用函数 II 斐波那契数的第 n 项 寻找质因数 寻找回文数 稳态向量 探索幂率 收益的分布 ...

  • 算法-Review

    一组N个乱序数中寻找第K大的数 冒泡或者简单排序(时间复杂度:O(K * N))for(int i == 0 ; ...

  • 梅森素数

    1.问题描述 梅森数指的是形如的正整数,其中指数n是素数,常记为,如果一个梅森数是素数,则称其为梅森素数。例如,都...

  • 奥南朵冥想呼吸法

    第1种呼吸方法:4.7.8呼吸法 闭上嘴巴吸气默数4次,屏住呼吸默数7次,舌砥上颚呼气发出“chi”的声音,并默数...

网友评论

      本文标题:寻找第n个默尼森数

      本文链接:https://www.haomeiwen.com/subject/cushmxtx.html