๋ฌธ์
์ด๋ ํ ์ N์ด 1์ด ๋ ๋ ๊น์ง ๋ค์์ ๋ ๊ณผ์ ์ค ํ๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ ํํด ์ํํ๋ ค ํจ
๋จ, ๋๋ฒ์งธ ์ฐ์ฐ์ N์ด K๋ก ๋๋์ด ๋จ์ด์ง ๋๋ง ์ ํํ ์ ์์
- N์์ 1์ ๋บ๋ค.
- N์ K๋ก ๋๋๋ค.
N์ด 1์ด ๋ ๋ ๊น์ง 1๋ฒ ํน์ 2๋ฒ์ ๊ณผ์ ์ ์ํํด์ผํ๋ ์ต์ ํ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑ
๋์ ์ฝ๋
# ์ ์ n๊ณผ k๋ฅผ ์
๋ ฅ๋ฐ๋๋ค.
n = int(input())
k = int(input())
count = 0
# n์ด 1๋ณด๋ค ํด ๋๊น์ง ์๋ ์กฐ๊ฑด๋ฌธ์ ๋ฐ๋ณตํ๋ค.
while n > 1:
# n์ด ํ์์ด๋ฉด ๋๋ ์ ์์ผ๋ 1์ ๋บ๋ค.
if n % k != 0:
n -= 1
count += 1
# n์ด ์ง์์ด๋ฉด k๋ฅผ ๋๋๋ค.
else:
n /= k
count += 1
print(count)
# ์ ๋น์ฑ ๋ถ์: ์๋ฌด๋ฆฌ ํฐ ์๊ฐ ์
๋ ฅ๋์ด๋ 1์ ๊ณ์ ๋นผ์ 1์ ๋ง๋๋ ๊ฒ๋ณด๋ค ๋๋๊ธฐ๋ฅผ ์ด์ฉํด์ 1์ ๋ง๋๋ ๊ฒ์ด ๋น ๋ฅด๊ธฐ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ๋นํ๋ค.
ํด์ค ์ฝ๋
# N, K๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๊ตฌ๋ถํ์ฌ ์
๋ ฅ ๋ฐ๊ธฐ
n, k = map(int, input().split())
result = 0
while True:
# N์ด K๋ก ๋๋์ด ๋จ์ด์ง๋ ์๊ฐ ๋ ๋๊น์ง๋ง 1์ฉ ๋นผ๊ธฐ
target = (n // k) * k
result += (n - target)
n = target
# N์ด K๋ณด๋ค ์์ ๋ (๋ ์ด์ ๋๋ ์ ์์ ๋) ๋ฐ๋ณต๋ฌธ ํ์ถ
if n < k:
break
# K๋ก ๋๋๊ธฐ
result += 1
n //= k
# ๋ง์ง๋ง์ผ๋ก ๋จ์ ์์ ๋ํ์ฌ 1์ฉ ๋นผ๊ธฐ
result += (n - 1)
print(result)