Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- BOJ
- DP
- programmers
- dfs
- 백준
- 따라하면서 배우는 C언어
- C
- BASIC
- Algorithm
- 따라하며 배우는 C언어
- Cleancode
- server
- 생활코딩
- udemy
- 따배씨
- graph
- Algospot
- 정수론
- php
- String
- Python
- BFS
- C언어
- Math
- JavaScript
- greedy
- web
- 인프런
- sorting
- 종만북
Archives
- Today
- Total
몽상실현개발주의
[BOJ] 6588 / 골드바흐의 추측 / Python 파이썬 본문
[BOJ] 6588 / 골드바흐의 추측 / Python 파이썬
https://www.acmicpc.net/problem/6588
6588번: 골드바흐의 추측
각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰
www.acmicpc.net
풀이
골드바흐의 추측 : 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다.
1000000 이하의 짝수에서 골드바흐의 추측을 검증하는 문제이다.
우선 에라토스테네스의 체를 이용하여 1000000 의 홀수 소수를 구하고, 구해진 홀수 소수를 탐색하여 조건을 검증 하였다.
import sys
primes = [0, 0] + [1] * 1000000
for i in range(2, 1000001):
if primes[i]:
if i % 2 == 0:
primes[i] = 0
continue
for j in range(i+i, 1000001, i):
if primes[j]:
primes[j] = 0
while True:
N = int(sys.stdin.readline())
if not N:
break
B = N-1
A = 1
while True:
B -= 1
A += 1
if primes[B] and primes[A]:
print(f"{N} = {A} + {B}")
break
'Algorithm PS > BOJ' 카테고리의 다른 글
[BOJ] 2089 / -2진수 / Python 파이썬 (0) | 2021.06.04 |
---|---|
[BOJ] 11653 / 소인수분해 / Python 파이썬 (0) | 2021.06.04 |
[BOJ] 1929 / 소수 구하기 / Python 파이썬 (0) | 2021.06.04 |
[BOJ] 1978 / 소수 찾기 / Python 파이썬 (0) | 2021.06.04 |
[BOJ] 11576 / Base Conversion / Python 파이썬 (0) | 2021.06.04 |
Comments