Python 寻找第n个尼尔森系数

<span style="color: rgb(51, 51, 51); font-family: Arial, 'Hiragino Sans GB', SimSun, 宋体, serif; font-size: 14px; font-weight: bold; line-height: 24px; white-space: pre-wrap; background-color: rgb(255, 255, 255);">寻找第n个默尼森数。</span>
代码格式如下:
def prime(num):  
...
def monisen(no):  
… …  
return xxx
print monisen(input()) #此处不需要自己输入,只要写这样一条语句即可,主要完成monisen()函数
# print(monisen(int(input()))) in Python 3.x(5分)
题目内容:找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2**P-1,则称M为默尼森数。例如,P=5,M=2**P-1=31,5和31都是素数,因此31是默尼森数。
输入格式:用input()函数输入,注意如果Python 3中此函数的返回类型
输出格式:int类型
输入样例:4
输出样例:127
时间限制:500ms内存限制:32000kb
from math import sqrt
def prime(num):
        k=int(sqrt(num))
        for i in range(2,k+1):
            if num%i==0:
                return False
        return True
        
def monisen(no):
    j=0
    i=2
    while(j!=no):
        if prime(i):
            M=2**i-1
            if prime(M):
                j+=1
        i+=1
    else:
        return M 
            
print monisen(input())



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页