December 31, 2022

10진수 → n진수


풀이

N, n = map(int, input().split())

result_list = []

while N // n:
    result_list.append(N % n)
    N = N // n

result_list.append(N)
result_list.reverse()

print(*result_list)

원리

10진수 N은 다음과 같이 표기할 수 있다.

$N = a_1n + a_2n^2 + a_3n^3 + ... + a_kn^k$

양 변을 n으로 나누면, $N / n = a_1 + {a_2n^2 + b_3n^3 + ... + a_kn^k\over n}$이므로, n진수로 변환된 첫 번째 자리 수를 계산할 수 있다. n으로 나누는 것을 나누어지지 않을 때까지 반복하면 n진수 결과물을 얻을 수 있다.