728x90
#2보다 큰 짝수 n이 주어진다 이 n이라는 결과값(합)이 나오는 두 개의 소수를 출력하라
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def goldbach(n):
if n < 4:
return []
primes = [2]
for i in range(3, n + 1, 2):
if is_prime(i):
primes.append(i)
pairs = []
for i in range(len(primes)):
for j in range(i, len(primes)):
if primes[i] + primes[j] == n:
pairs.append((primes[i], primes[j]))
return pairs
n = int(input("2보다 큰 짝수를 입력해주세요 : "))
print("해당 숫자의 골드바흐 파티션은 :", goldbach(n))
#골드바흐 파티션의 갯수를 출력 한 줄에 하나씩
t = int(input())
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def goldbach(n):
if n < 4:
return []
primes = [2]
for i in range(3, n + 1, 2):
if is_prime(i):
primes.append(i)
count = 0
for i in range(len(primes)):
for j in range(i, len(primes)):
if primes[i] + primes[j] == n:
count += 1
return count
for i in range(t):
n = int(input())
print(goldbach(n))
728x90