paizaラーニングのレベルアップ問題集「素数メニュー」からの出典です。
paiza.jp
Pythonによる「素数メニュー」問題集: paiza 予想と、それらの提出コードの解答例です。
僕が作成、提出したコードは、以下のとおりです。
・STEP: 1 ゴールドバッハ予想
''' Pythonによる「素数メニュー」問題集: paiza 予想 STEP: 1 ゴールドバッハ予想 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 import math def prime(n): for i in range(2, int(math.sqrt(n)+1)): if n%i == 0: return False return True n = int(input()) lis = [] for i in range(2, n): if prime(i): if prime(n-i): tempo = [i*(n-i), i, n-i] lis.append(tempo) lis.sort(reverse=True) if lis[0][1] < lis[0][2]: print(lis[0][1]) print(lis[0][2]) else: print(lis[0][2]) print(lis[0][1])
・STEP: 2 中国剰余定理
''' Pythonによる「素数メニュー」問題集: paiza 予想 STEP: 2 中国剰余定理 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 m1, m2, b1, b2 = map(int, input().split()) for i in range(m2): z = m1*i + b1 if z%m2 == b2: print(z)
・FINAL問題: paiza 予想
''' Pythonによる「素数メニュー」問題集: paiza 予想 FINAL問題: paiza 予想 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 import math def prime(n): for i in range(2, int(math.sqrt(n)+1)): if n%i == 0: return False return True for i in range(3, 10000, 2): tf = False if prime(i*i-2): tf = True if tf: if i == 9999: print("paiza's conjecture is correct.") else: print(i*i)
paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。