10進数→N進数へ変換

#お題

10 進数で表された整数 N, M が与えられます。
N を M 進数に変換して出力してください。

 

 


#入力

N M



・ 1 行で整数 N, M が与えられます。

 

 

 


#出力

N M



・ 1 行で整数 N, M が与えられます。

 

 

 


#コード

a,b = map(int,input().split())
ans = ""
tmp = a

while tmp >= b:
    ans = str(tmp % b) + ans
    tmp //=  b
    
ans = str(tmp % b) + ans

print(ans)

 

 

 


#参考

<別解>

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

base = ""
while N > 0:
    base += str(N % M)
    N //= M

print(base[::-1])
  • N が自然数であれば、M で割った余りを取ると、M 進数に変換した際の M^0 の桁を求めることができます。
  • M^0 の位を求めたら N を M で割り、もう一度同じ操作を繰り返すと M^1 の位を求めることができます。
  • これを繰り返していくことで N を M 進数に変換することができました。