# your code goes here
import string
import math
DIGITS = string.ascii_letters
def to26base(num: int) -> str:
ret = ""
while num:
ret += DIGITS[num%26]
num //= 26
return ret[::-1] or DIGITS[0]
def format_big_num(num: int) -> str:
adjusted_exp
= exp // 3 - 1 if adjusted_exp < 0:
return str(num)
base26exp = to26base(adjusted_exp)
rem = num // 10**((adjusted_exp + 1) * 3)
return str(rem) + base26exp
for x in [1, 10, 100, 1000, 2000, 5000, 100000, 2**64, 2**128, 2**256, 2**1024]:
print(format_big_num(x))
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmltcG9ydCBzdHJpbmcKaW1wb3J0IG1hdGgKCkRJR0lUUyA9IHN0cmluZy5hc2NpaV9sZXR0ZXJzCmRlZiB0bzI2YmFzZShudW06IGludCkgLT4gc3RyOgoJcmV0ID0gIiIKCXdoaWxlIG51bToKCQlyZXQgKz0gRElHSVRTW251bSUyNl0KCQludW0gLy89IDI2CglyZXR1cm4gcmV0Wzo6LTFdIG9yIERJR0lUU1swXQoKZGVmIGZvcm1hdF9iaWdfbnVtKG51bTogaW50KSAtPiBzdHI6CglleHAgPSBpbnQobWF0aC5sb2cxMChudW0pKQoJYWRqdXN0ZWRfZXhwID0gZXhwIC8vIDMgLSAxCglpZiBhZGp1c3RlZF9leHAgPCAwOgoJCXJldHVybiBzdHIobnVtKQoJYmFzZTI2ZXhwID0gdG8yNmJhc2UoYWRqdXN0ZWRfZXhwKQoJcmVtID0gbnVtIC8vIDEwKiooKGFkanVzdGVkX2V4cCArIDEpICogMykKCXJldHVybiBzdHIocmVtKSArIGJhc2UyNmV4cAoJCmZvciB4IGluIFsxLCAxMCwgMTAwLCAxMDAwLCAyMDAwLCA1MDAwLCAxMDAwMDAsIDIqKjY0LCAyKioxMjgsIDIqKjI1NiwgMioqMTAyNF06CglwcmludChmb3JtYXRfYmlnX251bSh4KSkK