__Python/__Algorithm

[Python] 백준 - 9020 골드바흐의 추측

KL_ 2022. 1. 7. 16:42

# 실버 1

 

[문제]

링크 : https://www.acmicpc.net/problem/9020

 

9020번: 골드바흐의 추측

1보다 큰 자연수 중에서  1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아

www.acmicpc.net

 

 

문제 풀이

  • 소수 판별
  • 두 소수의 합계이며 값의 차이가 최소 > N값의 절반부터 반복문을 실행 > i, N-i가 모두 소수일 경우 출력 
  • 정답 풀이 후 다른 풀이 방식이나 코드 축소를 참고하고자 숏코딩을 보는 편인데, 이 문제는 다른 사람의 풀이(숏코딩) 이해 어려움.

구현 코드

import math
import sys
def sosu(n):
    for i in range(2,int(math.sqrt(n))+1):
        if n%i == 0:
            return False
    return True
for _ in range(int(sys.stdin.readline())):
    N = int(sys.stdin.readline())
    for i in range(N//2,1,-1):
        if sosu(i) & sosu(N-i):
            print(i,N-i)
            break

 

실행 결과

 

728x90