寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

paizaラーニング: Pythonによる「素数メニュー」問題集: paiza 予想

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ラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。