alpyrithm_알파이리즘
[알고리즘][Python] 백준(BOJ) 17103 골드바흐 파티션_파이썬 본문
17103 골드바흐 파티션 www.acmicpc.net/problem/17103
문제 풀기 전 공부할 것 : 수학, 정수론, 소수 판정, 에라토스테네스의 체
풀이
<내용>
- 모든 테스트 케이스를 입력받는다.
- 테스트 케이스에서 가장 큰 값을 기준으로 소수를 찾는다.
- for문을 돌면서 두 소수의 합이 해당 정수인 경우 개수+1을 한다.
- 모든 경우를 찾고 출력한다.
<코드>
import sys
input = sys.stdin.readline
t = int(input())
nums = [int(input()) for _ in range(t)]
m = max(nums)
prime = [False, False] + [True] * (m-1)
for i in range(2, int(m**0.5)+1):
if prime[i]:
for j in range(i+i, m+1, i):
if prime[j]:
prime[j] = False
for num in nums:
cnt = 0
for i in range((num//2)+1):
if prime[i] and prime[num-i]:
cnt += 1
print(cnt)
728x90
반응형
'Algorithm > 백준 알고리즘_Python' 카테고리의 다른 글
[알고리즘][Python] 백준(BOJ) 16968 차량 번호판 1_파이썬 (0) | 2020.11.12 |
---|---|
[알고리즘][Python] 백준(BOJ) 16940 BFS 스페셜 저지_파이썬 (0) | 2020.11.11 |
[알고리즘][Python] 백준(BOJ) 17087 숨바꼭질 6_파이썬 (0) | 2020.11.09 |
[알고리즘][Python] 백준(BOJ) 5635 생일_파이썬 (0) | 2020.11.08 |
[알고리즘][Python] 백준(BOJ) 11557 Yangjojang of The Year_파이썬 (0) | 2020.11.07 |
Comments