호그와트

골드바흐의 추측 파티션 계산

영웅*^%&$ 2023. 1. 31. 13:46
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

'호그와트' 카테고리의 다른 글

알빠펫  (0) 2023.02.01
깊이 우선 탐색  (0) 2023.02.01
깔끔한 쨰각째각  (0) 2023.01.28
너무나 아름다운 논리  (0) 2023.01.27
챗 보크 만들기  (0) 2023.01.25