위치 기수법

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

요약
정수 R을 음수, 소수, 정수의 역수일 수 있는 위치 기수법 B로 나타내는 문제이다.
난이도

보통10점 중 4점

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

문제

우리는 수를 십진법으로 쓰는 데 익숙하다. "123"이라고 쓰면 이 표기는 1⋅102+2⋅10+31 \cdot 10^2 + 2 \cdot 10 + 3을 뜻한다.

이진법도 자주 쓴다. 123123의 이진 표기는 "1111011"이고, 1⋅26+1⋅25+1⋅24+1⋅23+0⋅22+1⋅2+11 \cdot 2^6 + 1 \cdot 2^5 + 1 \cdot 2^4 + 1 \cdot 2^3 + 0 \cdot 2^2 + 1 \cdot 2 + 1을 뜻한다.

위치 기수법의 밑이 꼭 자연수여야 하는 것은 아니다. 123123을 밑 −10-10으로 쓰면 "283"이 되고, 이 표기는 2⋅(−10)2+8⋅(−10)+32 \cdot (-10)^2 + 8 \cdot (-10) + 3을 뜻한다.

밑이 정수가 아니어도 된다. 123123을 밑 2.52.5로 쓰면 "22122.02012122…\ldots"가 되는데, 소수점 아래가 오른쪽으로 끝없이 이어진다.

밑이 11보다 작은 기수법도 있다. 이런 기수법에서 표기는 평소와 좌우가 뒤집힌 모습이 된다. 소수점에서 오른쪽으로 갈수록 자릿값이 커지기 때문이다. 예를 들어 123123을 밑 0.10.1로 쓰면 "3.21"이고, 이 표기는 3+2⋅0.1−1+1⋅0.1−23 + 2 \cdot 0.1^{-1} + 1 \cdot 0.1^{-2}을 뜻한다.

정수 RR과 밑 BB가 주어진다. RR의 밑 BB 표기를 출력하는 프로그램을 작성하라.

입력

첫째 줄에 정수 RR이 십진법으로 주어진다 (0≤R≤1010−10 \le R \le 10^{10} - 1). 자릿수는 최대 1010개다.

둘째 줄에 밑 BB가 십진법으로 주어진다. BB는 2≤∣B∣≤102 \le |B| \le 10인 정수이거나, 1/B1/B가 2≤∣1/B∣≤102 \le |1/B| \le 10인 정수다.

출력

∣B∣>1|B| > 1이면 b=Bb = B, ∣B∣<1|B| < 1이면 b=1/Bb = 1/B라고 하자. 두 경우 모두 bb는 정수이고, 표기에 쓰는 숫자는 00부터 ∣b∣−1|b| - 1까지다.

∣B∣>1|B| > 1이면 RR의 밑 BB 표기를 자릿값이 가장 큰 자리부터 B0B^0 자리까지 한 줄에 출력한다. 소수점은 쓰지 않고, 맨 앞에 00을 붙이지 않는다.

∣B∣<1|B| < 1이면 B0B^0 자리의 숫자를 먼저 쓰고, 소수점을 찍은 뒤 B−1B^{-1}, B−2B^{-2}, …\ldots 자리의 숫자를 차례로 쓴다. 마지막에 오는 숫자는 00이 아니다. 숫자가 하나뿐이면 소수점 없이 그 숫자만 쓴다.

R=0R = 0이면 "0"을 출력한다.

이 조건을 만족하는 표기는 하나뿐이고, 반올림 없이 RR과 정확히 같은 값이다.

예제3

  1. 예제 1

    입력
    123
    0.1
    
    예상 출력
    3.21
    
  2. 예제 2

    입력
    123
    -10
    
    예상 출력
    283
    
  3. 예제 3

    입력
    123
    2
    
    예상 출력
    1111011