Pythonでデータを遊ぶ(一)
826 ワード
n番目のマーニソン数を探して
コードのフォーマットは次のとおりです.
def prime(num):
...
def monisen(no):
… …
return xxx
print(monisen(int(input()))#ここでは自分で入力する必要はありません.このような文を書くだけで、主にmonisen()関数(4点)を完成します.
古典的なプログラム設計の問題:n番目のマーニソン数を探します.Pは素数であり、Mも素数であり、式M=2*P−1を満たすものをMという.例えば、P=5、M=2*P-1=31、5、31は素数であるため、31はメニソン数である.
入力フォーマット:プロンプトに従ってinput()関数で入力
出力フォーマット:intタイプ
入力サンプル:4
出力サンプル:127
コードのフォーマットは次のとおりです.
def prime(num):
...
def monisen(no):
… …
return xxx
print(monisen(int(input()))#ここでは自分で入力する必要はありません.このような文を書くだけで、主にmonisen()関数(4点)を完成します.
古典的なプログラム設計の問題:n番目のマーニソン数を探します.Pは素数であり、Mも素数であり、式M=2*P−1を満たすものをMという.例えば、P=5、M=2*P-1=31、5、31は素数であるため、31はメニソン数である.
入力フォーマット:プロンプトに従ってinput()関数で入力
出力フォーマット:intタイプ
入力サンプル:4
出力サンプル:127
import math
def prime(num):
l1 = [2]
for i in range(3, int(math.sqrt(num)+1), 2):
if num % i ==0:
return False
return num
def monisen(no):
l2 = [2]
a = 3
while 1 :
P = prime(a)
if P == False:
a = a+2
continue
M = 2**P-1
if prime(M) == False:
a = a+2
else:
l2.append(M)
a+=2
if len(l2) == no:
break
return l2[-1]
print(monisen(int(input(""))))