일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- react #리액트 #동빈나
- css #생활코딩 #웹
- BFS
- 파이썬
- react #리액트 #동빈나 #나동빈 #유튜브강의
- 자바 #java
- 백준 #파이썬 #알고리즘 #코딩테스트
- java #자바 #생활코딩
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- 파이썬 #백준 #알고리즘 #코딩테스트
- 투포인터
- 백준 #알고리즘 #파이썬 #코딩테스트
- 코딩테스트
- 프로그래머스
- 백준
- 알고리즘
- java #자바
- 다익스트라
- 다이나믹프로그래밍
- java #자바 #동빈나
- dp
- Dijkstra
- PYTHON
- DFS
- 재귀
- 백트랙킹
- css #웹 #생활코딩
- java #자바 #나동빈
Archives
- Today
- Total
커리까지
[백준] 11502번 세 개의 소수 문제 파이썬 본문
728x90
SMALL
문제
정수론(수학)에서, 세 개의 소수 문제(3-primes problem) 는 다음과 같은 추측을 말한다.
'5보다 큰 임의의 홀수는 정확히 세 개의 소수들의 합으로 나타낼 수 있다. 물론 하나의 소수를 여러 번 더할 수도 있다.'
예를 들면,
- 7 = 2 + 2 + 3
- 11 = 2 + 2 + 7
- 25 = 7 + 7 + 11
5보다 큰 임의의 홀수를 입력받아서, 그 홀수가 어떻게 세 소수의 합으로 표현될 수 있는지 (또는 불가능한지) 알아보는 프로그램을 작성하시오.
입력
첫째 줄에 T(Test Case의 수를 의미함)가 주어진다.
입력은 T개의 Test Case로 이루어진다.
각 Test Case는 하나의 정수 K (7 ≤ K < 1,000, K는 홀수)로 구성된다.
출력
T줄에 걸쳐서, 각 줄에 K가 어떻게 세 소수의 합으로 표현되는지 출력해야 한다.
가능하다면 그 세 소수를 오름차순 정렬하여 출력하면 된다.
여러 개의 답이 가능하다면 그 중 하나만 출력하면 되고, 만약 불가능하다면 0을 출력한다.
예제 입력 1
3
7
11
25
예제 출력 1
2 2 3
2 2 7
5 7 13
참고 답안
import sys
input = sys.stdin.readline
flush = sys.stdout.flush
prime = [True] * 1001
for i in range(2, 40):
if not prime[i]:
continue
for j in range(2 * i, 1001, i):
prime[j] = False
for _ in range(int(input())):
k = int(input())
k -= 3
for i in range(2, 1001):
if prime[i] and prime[k - i]:
ans = [3, i, k - i]
break
print(*sorted(ans))
728x90
LIST
'알고리즘 > 풀이' 카테고리의 다른 글
[프로그래머스] 2021 카카오 숫자 문자열과 영단어 파이썬 (0) | 2021.07.11 |
---|---|
[백준] 1806번 부분합 파이썬 (0) | 2021.07.10 |
[프로그래머스] 2020 KAKAO BLIND 자물쇠와 열쇠 파이썬 (0) | 2021.06.14 |
[백준] 6497번 전력난 파이썬 (1) | 2021.06.09 |
[프로그래머스] 카카오 블라인드 2018 추석 트래픽 파이썬 (0) | 2021.06.06 |
Comments