황소개발자

백준 6588 파이썬 python : 골드바흐의 추측 @@황소처럼 우직하게@@ 에레토스테네스의 체 + 최적화 본문

백준 문제 풀이

백준 6588 파이썬 python : 골드바흐의 추측 @@황소처럼 우직하게@@ 에레토스테네스의 체 + 최적화

hjp845 2020. 2. 27. 05:25
반응형

에레토스테네스의 체 구현해도 시간초과나서

최적화하는데 꽤 걸렷네요

import sys
input = sys.stdin.readline

num_list = []

while True:
    n = int(input().strip())
    if n == 0:
        break
    num_list.append(n)


max_num = max(num_list)

sosu = [1 for i in range(max_num + 1)]
sosu[1] = 0
only_sosu = []

i = 2
while i <= max_num:
    if sosu[i] == 1:
        only_sosu.append(i)
        for j in range(i + i, max_num + 1, i):
            sosu[j] = 0
    i += 1

for x in num_list:
    for n1 in only_sosu:
        if sosu[x - n1] == 1:
            print("%d = %d + %d" %(x, n1, x - n1))
            break

위에는 평범하게 에레토스테네스의 체로 소수 구해주고

소수들만 담은 리스트 따로 뽑아낸 다음에

마지막에 두 소수 찾아낼 때,

N - 소수가 소수 인지 판단해주면 돼요 (최적화 부분)

풀면서 아.. 멍청이

반응형
Comments