ํ’€์ด


์ฃผ์–ด์ง„ a์ง„๋ฒ•์„ ํ†ตํ•ด b์ง„๋ฒ•์— ๋งž์ถฐ์„œ ๊ฐ™์€ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

10์ง„๋ฒ•๊ณผ 2์ง„๋ฒ• ๋ณ€ํ™˜์›๋ฆฌ๋งŒ ์•Œ๋ฉด ๊ฐ„๋‹จํžˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

๋จผ์ € ์ฃผ์–ด์ง„ a์ง„๋ฒ• ์ˆซ์ž๋ฅผ ์šฐ๋ฆฌ์—๊ฒŒ ์ต์ˆ™ํ•œ 10์ง„๋ฒ• ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

๋ฐ”๊พผ 10์ง„๋ฒ• ์ˆซ์ž๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค๊ณ ์žํ•˜๋Š” b์ง„๋ฒ• ์ˆซ์ž์˜ ๊ฐ€์ง“์ˆ˜์ธ b๋ฅผ ๊ณ„์† ๋‚˜๋ˆ ์ฃผ๋ฉด์„œ ๋‚˜๋จธ์ง€๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค.

์ด๋•Œ ๋ฐ”๊ฟ”๋‘” 10์ง„๋ฒ• ์ˆซ์ž๊ฐ€ b๋ณด๋‹ค ์ž‘์•„์ง€๋Š” ๊ฒฝ์šฐ์— ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•˜๊ณ  ๋‚จ์€ ์ˆซ์ž๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ ๋’ค ๊ฑฐ๊พธ๋กœ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด๋œ๋‹ค.

์†Œ์Šค์ฝ”๋“œ


import sys
input = sys.stdin.readline
 
a, b = map(int, input().split())
m = int(input())
num = list(reversed(list(map(int, input().split()))))
 
temp = 0
 
for i in range(m):
    temp += num[i] * (a**i)
 
ans = []
 
while True:
    ans.append(temp%b)
    temp = temp//b
    if temp < b:
        ans.append(temp)
        break
 
print(*ans[::-1])

References