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

寻找第n个默尼森数

作者: 偷橘子的喵 | 来源:发表于2018-04-18 20:29 被阅读0次

    经典程序设计问题:找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数。例如,P=5,M=2P-1=31,5和31都是素数,因此31是默尼森数。
    输入格式:按提示用input()函数输入
    输出格式:int类型
    输入样例:4
    输出样例:127

    def is_prime(n):
        for i in range(2,n):
            if n % i == 0:
                return False
        else:
            return True
    
    def monisen(no):
        counter = 0
        p_num = 1
        while counter < no:
            p_num += 1
            if is_prime(p_num):
                if is_prime(2**p_num - 1):
                    counter += 1
                    if counter == no:
                        return 2**p_num -1
    
    print(monisen(int(input())))
    

    相关文章

      网友评论

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

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