소진법

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

요약
각 양의 정수를 앞에서부터 i번째 소수까지의 곱을 자릿값으로 하는 혼합 기수 체계인 프리모리얼 진법으로 나타낸다.
난이도

쉬움10점 중 3점

유형
수학, 정수론, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

22 이상의 자연수 bb가 주어지면, 모든 양의 정수 nn은 bb진법으로 유일하게 표현할 수 있다.

n=a0+a1b+a2b2+a3b3+⋯n = a_0 + a_1 b + a_2 b^2 + a_3 b^3 + \cdots

여기서 각 자리 aia_i는 0≤ai≤b−10 \le a_i \le b-1을 만족한다.

ii번째 소수를 pip_i라 하자. 즉 p0=2, p1=3, p2=5, …p_0 = 2,\ p_1 = 3,\ p_2 = 5,\ \dots 이다. 그러면 모든 양의 정수 nn도 소수를 자릿값으로 사용하는 진법으로 유일하게 표현할 수 있으며, 이를 소진법이라고 한다.

n=a0+a1p0+a2p0p1+a3p0p1p2+⋯n = a_0 + a_1 p_0 + a_2 p_0 p_1 + a_3 p_0 p_1 p_2 + \cdots

여기서 각 자리 aia_i는 0≤ai≤pi−10 \le a_i \le p_i - 1을 만족한다. 예를 들어 a3a_3은 0≤a3≤p3−10 \le a_3 \le p_3 - 1을 만족한다.

양의 정수 nn이 주어질 때, 이를 소진법으로 나타내는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄에 하나의 양의 정수 nn을 담고 있으며, nn은 231−12^{31}-1 이하이다. 마지막 줄에는 00이 주어지며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다, 주어진 수와 공백, 등호(==), 공백을 차례로 출력한 뒤 그 수를 소진법으로 나타낸 식을 출력한다.

계수가 00인 항은 생략하고, 남은 항들을 자릿값이 낮은 것부터 +로 잇는다. 상수항은 계수만 출력하고, i≥1i \ge 1번째 항은 계수 뒤에 소수 p0,p1,…,pi−1p_0, p_1, \dots, p_{i-1}을 별표(*)로 이어 붙여 출력한다. 예를 들어 4p0p1p24 p_0 p_1 p_2 항은 4*2*3*5로 출력한다.

예제5

  1. 예제 1

    입력
    123
    456
    123456
    0
    
    예상 출력
    123 = 1 + 1*2 + 4*2*3*5
    456 = 1*2*3 + 1*2*3*5 + 2*2*3*5*7
    123456 = 1*2*3 + 6*2*3*5 + 4*2*3*5*7 + 1*2*3*5*7*11 + 4*2*3*5*7*11*13
    
  2. 예제 2

    입력
    1
    0
    
    예상 출력
    1 = 1
    
  3. 예제 3

    입력
    2
    3
    4
    5
    0
    
    예상 출력
    2 = 1*2
    3 = 1 + 1*2
    4 = 2*2
    5 = 1 + 2*2
    
  4. 예제 4

    입력
    6
    30
    210
    2310
    0
    
    예상 출력
    6 = 1*2*3
    30 = 1*2*3*5
    210 = 1*2*3*5*7
    2310 = 1*2*3*5*7*11
    
  5. 예제 5

    입력
    7
    11
    13
    0
    
    예상 출력
    7 = 1 + 1*2*3
    11 = 1 + 2*2 + 1*2*3
    13 = 1 + 2*2*3