만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

세 소수의 합

면접 대비

시간 제한1초메모리 제한256 MB

요약
7 이상 999 이하의 홀수 K마다 합이 K가 되는 소수 삼중항 중 사전 순으로 가장 작은 것을 오름차순으로 출력하고, 없으면 0을 출력합니다.
난이도

쉬움10점 중 3점

유형
정수론, 완전 탐색
정답자
아직 제출이 없습니다

문제

정수론에서 세 소수 문제(3-primes problem)는 다음 추측을 말한다.

"5보다 큰 홀수는 모두 소수 세 개의 합으로 나타낼 수 있다. 같은 소수를 여러 번 더해도 된다."

예를 들어 7=2+2+37 = 2 + 2 + 3, 11=2+2+711 = 2 + 2 + 7, 25=3+3+1925 = 3 + 3 + 19이다.

5보다 큰 홀수 KK를 읽어서 KK를 소수 세 개의 합으로 나타내는 프로그램을 작성하시오.

답이 여러 개일 수 있으므로 출력은 하나로 고정한다. 세 소수를 오름차순으로 정렬한 조 (a,b,c)(a, b, c) 가운데 사전순으로 가장 작은 것을 고른다. 즉 aa가 가장 작은 것을 고르고, aa가 같으면 bb가 가장 작은 것을 고른다.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다.

다음 TT개의 줄에 정수 KK가 한 줄에 하나씩 주어진다. KK는 홀수이고 7≤K<10007 \le K < 1000이다.

출력

각 테스트 케이스마다 한 줄씩 출력한다.

KK를 소수 세 개의 합으로 나타낼 수 있으면 사전순으로 가장 작은 세 소수를 오름차순으로, 공백 하나로 구분해 출력한다. 나타낼 수 없으면 0을 출력한다.

예제3

  1. 예제 1

    입력
    3
    7
    11
    25
    
    예상 출력
    2 2 3
    2 2 7
    3 3 19
    
  2. 예제 2

    입력
    1
    7
    
    예상 출력
    2 2 3
    
  3. 예제 3

    입력
    1
    999
    
    예상 출력
    3 5 991