将输入的偶数分为两部分a = b = 输入数/2 min_prime_number:先找0到a部分的素数 max_prime_number :后找b到输入数的素数
例如 输入数为 40 a = b = 20 即 min_prime_number 可以找到[2, 3, 7, 11, 13, 17, 19] max_prime_number只要实现40 减去 [2, 3, 7, 11, 13, 17, 19]对应的值为[(40-19)= 21 , 23, 27, 29, 33, 37, 38] 依次循环找到第一个素数,必定是差值最小

def min_prime_number(n): #

  prime_min_list = []
  for i in range(3, n + 1):
      flag = 1
      for j in range(2, i):
          if i % j == 0:
              flag = 0
              break
      if flag:
          prime_min_list.append(i)
  return prime_min_list  # 假如 n = 20  prime_min_list = [2, 3, 7, 11, 13, 17, 19]

def max_prime_number(m):

  # 这里 m = [19, 17, 13, 11, 7, 3, 2] 对应列表[(40-19)= 21 , 23, 27, 29, 33, 37, 38]
  
  max_prime = 0
  min_prime = 0
  for i in m:
      flag = 1
      for j in range(2, (num - i)):
          if (num - i) % j == 0:  #  第一个数为21 不符合 第二数 23 符合 所有break  所有23 和 17就是两个素数而且差值最小
              flag = 0
              break

      if flag:
          max_prime = num - i
          min_prime = i
          break   # 再跳出循环
  return max_prime, min_prime

while True:

  try:
      num = int(input())
      a = b = int(num // 2)
      if a == 2:
          print(a)
          print(b)
      else:
          min_list = min_prime_number(a)
          min_list.reverse()
          a, b = max_prime_number(min_list)
          print(b)
          print(a)
  except:
      break