BOJ : 6588 골드바흐의 추측

김가영·2020년 10월 5일
0

Algorithm

목록 보기
2/78
post-thumbnail

입력받은 4보다 큰 짝수를 두 홀수 소수의 합으로 나타내기

isPrime(a) : a가 소수인지 판단하는 함수

goldBach(n) : n이 소수의 합으로 이루어졌는지 판단하고 그 중 작은 소수를 return 하는 함수. 만약 소수의 합으로 이루어지지 않았다면 "Goldbach's conjecture is wrong."을 출력


import sys

def isPrime(a):

    i=3
    while i*i <=a:
        if a%i==0 : return False
        else: i+=2
    return True

def goldBach(n):

    for i in range(3,n//2+1,2):
        if isPrime(i) and isPrime(n-i):
            return i
    return -1

while True:
    a = int(sys.stdin.readline())
    if a ==0 : break

    gold = goldBach(a)
    if(gold == -1):
        print("Goldbach's conjecture is wrong.")
    else:
        print("{} = {} + {}".format(a,gold,a-gold))
profile
개발블로그

0개의 댓글