문제링크:https://www.acmicpc.net/problem/9020
import sys
# 소수를 구하는 함수
def prime(a):
if a < 2: # 조건 1: 2보다 작으면 소수가 아니다.
return False
for i in range(2, a): # 2부터 a-1까지
if a % i == 0: # 조건 2: a를 i부터 a-1까지 나눴을떄 나머지가 존재하지 않으면 소수가 아니다.
return False
return True
t = int(sys.stdin.readline())
n = []
for _ in range(t):
n.append(int(sys.stdin.readline().strip()))
for j in range(len(n)):
q, w = n[j] // 2, n[j] // 2 # 리스트 안의 원소 j/2 즉 절반 값을 구한다.
while True: # q를 -1 w를 +1 하며 둘다 소수일 경우를 구하면
if prime(q) and prime(w): # 그 두 값이 차이가 가장 적은 골드바흐 파티션이다.
print(q, w)
break
else:
q -= 1
w += 1
'Algorithm > 백준(파이썬)' 카테고리의 다른 글
백준 9663 파이썬(Python) 문제풀이 N-Queen(N퀸) (0) | 2023.04.12 |
---|---|
백준 1914 파이썬(Python) 문제풀이 하노이의 탑 (0) | 2023.04.11 |
백준 2628 파이썬(Python) 문제풀이 종이자르기 (0) | 2023.04.11 |
백준 1065 파이썬(Python) 문제풀이 한수 (0) | 2023.04.11 |
백준 2869 파이썬(Python) 문제풀이 달팽이는 올라가고 싶다 (0) | 2023.04.11 |