아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Prime Land

면접 대비

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

요약
정수 x가 소수 거듭제곱의 내림차순 표현으로 주어질 때, x - 1을 같은 형식으로 출력한다.
난이도

보통10점 중 5점

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

문제

소수의 나라(Prime Land)에서는 모든 사람이 소수 진법(prime base number system)을 사용한다. 이 진법에서 양의 정수 xx는 다음과 같이 표현된다. 모든 소수를 오름차순으로 나열한 수열을 {pi}i=0∞\{p_i\}_{i=0}^{\infty}라 하자. 즉 p0=2p_0 = 2, p1=3p_1 = 3, p2=5p_2 = 5, ... 이다. 11보다 큰 모든 정수 xx는 소인수분해가 유일하므로, 어떤 첨자 kxk_x와 ekx>0e_{k_x} > 0을 만족하는 유일한 지수들 ekx,ekx−1,…,e1,e0e_{k_x}, e_{k_x - 1}, \dots, e_1, e_0이 존재하여 다음이 성립한다.

x=pkxekx⋅pkx−1ekx−1⋯p1e1⋅p0e0.x = p_{k_x}^{e_{k_x}} \cdot p_{k_x - 1}^{e_{k_x - 1}} \cdots p_1^{e_1} \cdot p_0^{e_0}.

수열 (ekx,ekx−1,…,e1,e0)(e_{k_x}, e_{k_x - 1}, \dots, e_1, e_0)이 바로 소수 진법에서의 xx의 표현이다.

이 진법에서는 곱셈과 나눗셈은 쉽지만 덧셈과 뺄셈은 어렵다. 주어진 xx의 소수 진법 표현에 대해 x−1x - 1의 소수 진법 표현을 구하는, 즉 "11 빼기" 연산을 수행하는 프로그램을 작성하라.

편의를 위해 소수 진법 표현은 ei>0e_i > 0인 항들만 골라 pi eip_i\ e_i 쌍의 나열로 적으며, pip_i의 내림차순으로 정렬한다.

입력

입력은 한 줄 이상으로 이루어진다. 마지막 줄을 제외한 각 줄에는 2<x≤327672 < x \le 32767인 정수 xx 하나의 소수 진법 표현이 주어진다. 즉 ei>0e_i > 0인 pi eip_i\ e_i 쌍들이 pip_i의 내림차순으로 주어지며, 모든 수는 공백 하나로 구분된다. 마지막 줄에는 00 하나만 주어지며, 이 줄은 처리하지 않는다.

출력

마지막 줄을 제외한 각 입력 줄에 대해, x−1x - 1의 소수 진법 표현을 한 줄에 출력한다. ei>0e_i > 0인 pi eip_i\ e_i 쌍들을 pip_i의 내림차순으로, 공백 하나로 구분하여 출력한다.

예제1

  1. 예제 1

    입력
    17 1
    5 1 2 1
    509 1 59 1
    0
    
    예상 출력
    2 4
    3 2
    13 1 11 1 7 1 5 1 3 1 2 1