寻找第n个默尼森数

经典程序设计问题:找第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())))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容