티스토리 뷰
<문제 링크>
9020번: 골드바흐의 추측
1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아
www.acmicpc.net
<문제 풀이>
def check_prime(a):
for i in range(2, int(a**0.5) + 1):
if a % i == 0:
return False
if a == 1:
return False
return True
T = int(input())
for i in range(T):
n = int(input())
for num in range(n // 2, 1, -1):
if check_prime(num) and check_prime(n - num):
print(num, n - num)
break
*key point: 소수 리스트를 만든 뒤 입력값을 만들 수 있는 소수 조합을 찾고 그 중 두 소수의 차이가 작은 조합을 고르는 직관적인 알고리즘을 구현한 경우 시간 초과가 발생하였다. 실행 시간을 최소화하기 위하여 소수임을 판별해주는 함수를 정의하여 사용하고, 조건에 맞는 소수 조합을 빠르고 간편하게 찾기 위해 입력값 n을 2로 나눈 수에서부터 반복을 시작하였다.
'What I Learned > Algorithm Practice' 카테고리의 다른 글
[백준 - python] 2581번: 소수 (0) | 2022.09.25 |
---|---|
[백준 - python] 1978번: 소수 찾기 (0) | 2022.09.25 |
[백준 - python] 10757번: 큰 수 A+B (0) | 2022.09.22 |
[백준 - python] 2839번: 설탕 배달 (0) | 2022.09.22 |
[백준 - python] 1929번: 소수 구하기 (0) | 2022.09.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 2903
- 24060
- 1269
- 코육대
- 13909
- 17103
- 26069
- Python
- 5597
- MySQL
- 항해 플러스
- 25192
- 4134
- 24723
- 10807
- 2738
- Wil
- SQL
- 2587
- 항해+
- 24313
- 2053
- programmer
- 25501
- til
- 백준
- 20920
- 벡준
- Programmers
- 13241
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함