파이톨치

[백준][python][9020] 골드바흐의 추측(시간초과) 본문

알고리즘

[백준][python][9020] 골드바흐의 추측(시간초과)

파이톨치 2021. 7. 14. 22:51
728x90

[문제 설명]

[링크]

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

 

9020번: 골드바흐의 추측

1보다 큰 자연수 중에서  1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아

www.acmicpc.net

[코드]

 

import sys

def isPrime(a):
  if(a<2):
    return False
  for i in range(2,a):
    if(a%i==0):
      return False
  return 1

def 골드바흐씨의_추측(num):
    A, B= 0, 0
    for i in range(num//2+1):
        if isPrime(i) == 1:   
            temp = num - i
            if isPrime(temp) == 1:
                if i <= temp:
                    A, B = i, temp
    print(A, B)


#--------------main------------------
n = int(sys.stdin.readline())

for i in range(n):
    temp = int(sys.stdin.readline())
    골드바흐씨의_추측(temp)

 

[코드 설명]

문제를 토대로 만들어 보았다. 문제를 만드는 것은 그다지 어렵지 않았다. 하지만 시간초과 문제가 걸리고 말았다. 

이것을 해결할 방법은 에라토스테네스의 체라는 것이고 깨달았다. 내일 이것을 사용하여 문제를 해결해 보겠다.

728x90