ロジャーが決めたルールに則って、番号Nの犬の名前を答える問題です。
提出
n = int(input())
ans = ""
while n>0:
n -= 1
ans += chr(ord("a")+n%26)
n = n//26
print(ans[::-1])
「a~z」は「1~26」、「aa~zz」は「27~702」と命名されます。
「aa~zz」の個数は「262」、「aaa~zzz」の個数は「263」……、となることに注目し、右側の文字から考えていきます。
右端の文字は、番号nを26で割った余りだけ、「a」より大きいアルファベットです。
(番号1がaであるため、事前にnから1を引いておきます)
aのASCIIコードに余りを足して、文字に戻します。
最後に、26で切り捨て除算をnに代入することで、次の文字を求める準備をします。
ここでのnが0になるまでの間、この処理が続きます。
最後に文字列「ans」を逆に並べたものが答えになります。