📌 문제
💯 정답
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
while a > 0:
if isPrime(a) and isPrime(b):
print(a, b)
break
else:
a -= 1
b += 1
📝 설명
• a, b를 중앙값으로 두고 양 끝으로 퍼져나가면서 소수인 값을 찾으면
소수인 쌍이 여러개여도 가장 차이가 적은 쌍을 바로 찾아낼 수 있다.
⭐️ 알고가기
🔎 for _ in range( ) 에서 언더스코어의 이미
- 인터프리터에서 마지막 값 저장 시
- 값을 무시하고 싶을 때 (I don't care)
- 변수나 함수명에 특별한 의미/기능 부여하고자 할 때
- 국제화/지역화 함수로써 사용할 때
- 숫자 리터럴값의 자릿수 구분을 위한 구분자로 사용할 때
🙏 참고
👉 파이썬 언더스코어(_)에 대하여