Algorithms

[λ°±μ€€] 9020번: κ³¨λ“œλ°”νμ˜ μΆ”μΈ‘

thals0 2022. 7. 30. 14:26
728x90

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

 

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

1보닀 큰 μžμ—°μˆ˜ μ€‘μ—μ„œ  1κ³Ό 자기 μžμ‹ μ„ μ œμ™Έν•œ μ•½μˆ˜κ°€ μ—†λŠ” μžμ—°μˆ˜λ₯Ό μ†Œμˆ˜λΌκ³  ν•œλ‹€. 예λ₯Ό λ“€μ–΄, 5λŠ” 1κ³Ό 5λ₯Ό μ œμ™Έν•œ μ•½μˆ˜κ°€ μ—†κΈ° λ•Œλ¬Έμ— μ†Œμˆ˜μ΄λ‹€. ν•˜μ§€λ§Œ, 6은 6 = 2 × 3 이기 λ•Œλ¬Έμ— μ†Œμˆ˜κ°€ μ•„

www.acmicpc.net

 

μ •λ‹΅ μ½”λ“œ:

def is_prime(n):
  if n == 1:
    return False
  for j in range(2, int(n**0.5)+1):
    if n % j == 0:
      return False
  return True
  
t = int(input())
for i in range(t):
  num = int(input())
  a,b = num//2, num//2
  while a > 0:
    if is_prime(a) and is_prime(b):
      print(a, b)
      break
    else:
      a -=1
      b +=1

 

μš°μ„  n이 μ†Œμˆ˜μΈμ§€ ν™•μΈν•˜λŠ” is_prime() ν•¨μˆ˜ 생성 

 

n이 μ†Œμˆ˜μΈμ§€ ν™•μΈν•˜κΈ° μœ„ν•œ λ°©λ²•μœΌλ‘œλŠ” n미만의 수둜 n이 λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€λŠ”μ§€ ν™•μΈν•˜λŠ” 방법과 

μ—λΌμŠ€ν† ν…Œλ„€μŠ€μ˜ 체 방법이 μžˆλŠ”λ°, λ‚˜λŠ” μ „μžλ₯Ό νƒν–ˆλ‹€

 

κ°€μž₯ 차이가 적은 두 μ†Œμˆ˜λ₯Ό ν•©ν•΄μ„œ ν•΄λ‹Ή μ§μˆ˜κ°€ λ˜λ„λ‘ ν•˜λ €λ©΄

μž…λ ₯ 받은 num을 반으둜 μͺΌκ°œμ„œ ν•œ κ°œλŠ” +1μ”©, ν•œ κ°œλŠ” -1μ”© ν•΄λ³΄λ©΄μ„œ 두 μˆ˜κ°€ λͺ¨λ‘ μ†Œμ‹œμΈμ§€ ν™•μΈν•˜λ©΄ λœλ‹€.

728x90