만드는 중입니다

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

멋진 수

시간 제한0.5초메모리 제한512 MB

요약
1에서 시작해 P(n번째 소수) 또는 S(n번째 제곱수)를 반복 적용하여 n을 만들 수 있는지 판별하고, 가능하면 가장 짧은 연산 식을 출력합니다.
난이도

어려움10점 중 9점

유형
정수론, 수학
정답자
아직 제출이 없습니다

문제

여러분도 잘 알다시피, 키파가 가장 좋아하는 정수는 120입니다. 120에는 다음과 같은 성질이 있습니다.

  • (ζ(−3))−1(\zeta(-3))^{-1}입니다.
  • 첫 번째 triperfect number입니다.
  • 정수 5의 factorial입니다.
  • 10번째 highly composite number입니다.
  • 15번째 삼각수입니다.

순서는 당연히 키파가 좋아하는 성질의 순서입니다.

그러나 키파는 정수족, 즉 어떤 성질을 만족하는 정수의 부분집합도 좋아합니다. 특히 위 성질에 속하지 않는 두 정수족을 좋아하는데, 바로 소수와 제곱수입니다. 그래서 다음 연산을 생각했습니다.

  • P(n)P(n): nn번째 소수입니다.
  • S(n)S(n): nn번째 제곱수입니다.

예를 들어 5=P(P(P(1)))5 = P(P(P(1)))은 1에 PP를 세 번 적용한 값이고, 7=P(S(P(1)))7 = P(S(P(1)))은 PP, SS, PP를 차례로 적용한 값입니다. 키파는 1에서 시작해서 PP나 SS를 반복 적용합니다. 이렇게 만들 수 있는 정수를 모아, 그 정수족을 멋진 수라고 부르기로 했습니다. 양의 정수가 주어지면 멋진 수인지 판단해서 키파를 멋지게 만들어 줍시다.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어집니다. TT는 10510^5 이하의 양의 정수입니다.

둘째 줄부터 TT개의 줄마다 101510^{15} 이하의 양의 정수 nn이 주어집니다.

출력

TT개의 줄에 예제 출력과 비슷하게 출력합니다. "비슷하게"라는 말에 불평을 가지고 계신 분들을 위해, 조건을 정규식으로 아래에 적어 둡니다.

  • nn이 멋진 수가 아니라면, -1을 출력합니다.
  • nn이 멋진 수라면, 다음 조건을 모두 만족하는 가장 짧은 문자열 SS를 출력합니다.
    • 정규식 ^1( [PS] [1-9][0-9]*)*$이 SS를 받아들입니다.
    • 정규식 ^.*n\$이 SS를 받아들입니다.
    • SS의 바로 앞 글자와 뒤 글자가 숫자가 아닌 임의의 부분문자열 ss에 대하여,
      • 정규식 ^([0-9]+) P ([0-9]+)\$이 ss를 받아들인다면, P({1}) = {2}`를 만족합니다.
      • 정규식 ^([0-9]+) S ([0-9]+)\$이 ss를 받아들인다면, S({1}) = {2}`를 만족합니다.

nn이 멋진 수라면, 조건을 만족하는 문자열이 하나 이상 존재함이 보장됩니다. 그러한 가장 짧은 SS가 여러 개라면 아무 것이나 하나 출력해도 됩니다.

예제1

  1. 예제 1

    입력
    10
    6
    7
    3
    5
    9
    1
    2
    8
    4
    3001
    
    예상 출력
    -1
    1 P 2 S 4 P 7
    1 P 2 P 3
    1 P 2 P 3 P 5
    1 P 2 P 3 S 9
    1
    1 P 2
    -1
    1 P 2 S 4
    1 P 2 P 3 S 9 P 23 P 83 P 431 P 3001