πŸ—οΈ Algorithm/🟩 λ°±μ€€

🟩 [λ°±μ€€] [Python] [Silver1] 6588번_κ³¨λ“œλ°”νμ˜ μΆ”μΈ‘

Dbswnstjd 2023. 4. 25. 11:43

문제

https://www.acmicpc.net/problem/6588

 

6588번: κ³¨λ“œλ°”νμ˜ μΆ”μΈ‘

각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ— λŒ€ν•΄μ„œ, n = a + b ν˜•νƒœλ‘œ 좜λ ₯ν•œλ‹€. μ΄λ•Œ, a와 bλŠ” ν™€μˆ˜ μ†Œμˆ˜μ΄λ‹€. μˆ«μžμ™€ μ—°μ‚°μžλŠ” 곡백 ν•˜λ‚˜λ‘œ κ΅¬λΆ„λ˜μ–΄μ Έ μžˆλ‹€. λ§Œμ•½, n을 λ§Œλ“€ 수 μžˆλŠ” 방법이 μ—¬λŸ¬ 가지라면, b-aκ°€ κ°€μž₯ 큰

www.acmicpc.net

풀이

# λ°±μ€€ 6588번 문제 - κ³¨λ“œλ°”νμ˜ μΆ”μΈ‘
import sys
input = sys.stdin.readline

n = 1000001
# μ†Œμˆ˜ μ•„λ‹Œ λͺ¨λ“  ν™€μˆ˜ 처리
prime = [1] * n
for i in range(3, int(n ** 0.5) + 1, 2):
    if prime[i]:
        for j in range(i * 2, n, i):
            prime[j] = 0
# kκ°€ λ§Œλ“€μ–΄μ§€λŠ” 두 ν™€μˆ˜μΈ μ†Œμˆ˜ 검색
while 1:
    k = int(input())
    if not k:
        break
    for i in range(3, int(k // 2) + 1, 2):
        if prime[i] and prime[k - i]:
            print(f"{k} = {i} + {k - i}")
            break
    else:
        print("Goldbach's conjecture is wrong.")

μ—λΌν† μŠ€ν…Œλ„€μŠ€μ˜ 체λ₯Ό κ΅¬ν˜„ν•  수 μžˆλ‹€λ©΄ κ°„λ‹¨νžˆ ν’€ 수 μžˆλŠ” λ¬Έμ œμ˜€λ‹€.