[백준 9020 파이썬] - 골드바흐의 추측

zsunny·2022년 7월 2일
1

📌 문제

💯 정답

def isPrime(i):			# 소수 판별 함수
    if i == 1:
        return False
    for j in range(2, int(i**0.5)+1):	# 제곱근까지만 검사
        if i % j == 0:
            return False
    return True

t = int(input())
for _ in range(t):
    n = int(input())

    a, b = n//2, n//2		# 주어진 n의 중앙값을 a, b로 둔다.
    while a > 0:
        if isPrime(a) and isPrime(b):	# a, b가 모두 소수면
            print(a, b)					# 출력
            break						# 프로그램 종료
        else:							# 둘 다 소수가 아니면
            a -= 1						# a는 1씩 감소하고
            b += 1						# b는 1씩 증가

📝 설명

• a, b를 중앙값으로 두고 양 끝으로 퍼져나가면서 소수인 값을 찾으면
  소수인 쌍이 여러개여도 가장 차이가 적은 쌍을 바로 찾아낼 수 있다.

⭐️ 알고가기

🔎 for _ in range( ) 에서 언더스코어의 이미

  • 인터프리터에서 마지막 값 저장 시
  • 값을 무시하고 싶을 때 (I don't care)
  • 변수나 함수명에 특별한 의미/기능 부여하고자 할 때
  • 국제화/지역화 함수로써 사용할 때
  • 숫자 리터럴값의 자릿수 구분을 위한 구분자로 사용할 때

🙏 참고

👉 파이썬 언더스코어(_)에 대하여

profile
매일 성장하는 예비 웹 개발자 🌱

0개의 댓글