입력받은 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))