AtCoder Beginner Contest 171 - One Quadrillion and One Dalmatians

1000000000000001 dogs suddenly appeared under the roof of Roger's house, all of which he decided to keep. The dogs had been numbered 1 through 1000000000000001, but he gave them new names, as follows:
 - the dogs numbered 1,2,\cdots,26 were respectively given the names a, b, ..., z;
 - the dogs numbered 27,28,29,\cdots,701,702  were respectively given the names aa, ab, ac, ..., zy, zz;
 - the dogs numbered 703,704,705,\cdots,18277,18278  were respectively given the names aaa, aab, aac, ..., zzy, zzz;
 - the dogs numbered 18279,18280,18281,\cdots,475253,475254  were respectively given the names aaaa, aaab, aaac, ..., zzzy, zzzz;
 - the dogs numbered 475255,475256,\cdots  were respectively given the names aaaaa, aaaab, ...;
 - and so on.
To sum it up, the dogs numbered 1, 2, \cdots were respectively given the following names:
a, b, ..., z, aa, ab, ..., az, ba, bb, ..., bz, ..., za, zb, ..., zz, aaa, aab, ..., aaz, aba, abb, ..., abz, ..., zzz, aaaa, ...
Now, Roger asks you:
"What is the name for the dog numbered N?"

-----Constraints-----
 - N is an integer.
 -  1 \leq N \leq 1000000000000001

-----Input-----
Input is given from Standard Input in the following format:
N

-----Output-----
Print the answer to Roger's question as a string consisting of lowercase English letters.

-----Sample Input-----
2

-----Sample Output-----
b

Difficulty: EASY

Starter code:

Solutions:
n = int(input())
ans = ''
while n > 0:
	n -= 1
	ans += chr(n % 26 + 97)
	n //= 26
ans = ans[::-1]
print(ans)


N = int(input())
ans = ''
while N != 0:
	N -= 1
	ans += chr(ord('a') + N % 26)
	N //= 26
print(ans[::-1])


N = int(input())
name = ''
while N > 0:
	N -= 1
	name = chr(ord('a') + N % 26) + name
	N //= 26
print(name)


n = int(input())
n -= 1
ans = []
while n >= 0:
	ans.append(chr(ord('a') + n % 26))
	n //= 26
	n -= 1
print(*ans[::-1], sep='')


n = int(input())
ans = []
while n != 0:
	n = n - 1
	ans.append(chr(n % 26 + 97))
	n = n // 26
ans.reverse()
print(''.join(ans))


n = int(input())
out = ''
n = n - 1
while n >= 0:
	out += chr(ord('a') + n % 26)
	n = n // 26 - 1
print(out[::-1])


n = int(input())
ans = str()
while n > 0:
	n = n - 1
	k = n % 26
	ans = chr(ord('a') + k) + ans
	n //= 26
print(ans)


import string
N = int(input().split()[0])
a_list = list(string.ascii_lowercase)
amari_list = []
n = N
while n > 0:
	n -= 1
	amari = n % 26
	amari_list.append(a_list[amari])
	n = n // 26
ans = ''.join(reversed(amari_list))
print(ans)


n = int(input())
s = ''
while n > 0:
	n -= 1
	s = chr(ord('a') + n % 26) + s
	n //= 26
print(s)


A = int(input())
az = 'zabcdefghijklmnopqrstuvwxy'
ans = ''
abc = 'abcdefghijklmnopqrstuvwxyz'
while A:
	A -= 1
	ans = abc[A % 26] + ans
	A = A // 26
print(ans)


N = int(input())
lst = 'abcdefghijklmnopqrstuvwxyz'
ans = ''
while N > 0:
	ans = lst[(N - 1) % 26] + ans
	N = (N - 1) // 26
print(ans)


N = int(input())
ans_reverse = ''

def num_to_alphabet(n):
	return chr(ord('a') - 1 + n)
while N:
	if N % 26 == 0:
		ans_reverse += 'z'
		N -= 26
	else:
		ans_reverse += num_to_alphabet(N % 26)
	N //= 26
print(ans_reverse[::-1])


n = int(input())
ans = ''
while n > 0:
	(n, r) = divmod(n - 1, 26)
	ans = chr(r + ord('a')) + ans
print(ans)


n = int(input())
s = []
while n > 0:
	s.append(chr((n - 1) % 26 + 97))
	n = (n - 1) // 26
print(''.join(list(reversed(s))))


N = int(input())
ans = ''
while N:
	N -= 1
	(N, mod) = divmod(N, 26)
	ans += chr(ord('a') + mod)
print(ans[::-1])


n = int(input())
s = ''
while n:
	n -= 1
	s = ''.join([chr(n % 26 + ord('a')), s])
	n //= 26
print(s)


N = int(input())
N_26 = []
while N > 0:
	N -= 1
	N_mod = N % 26
	N = N // 26
	N_26.append(chr(97 + N_mod))
print(''.join(list(reversed(N_26))))


n = int(input())
alphabets = [chr(i) for i in range(ord('a'), ord('a') + 26)]
ans = ''
while n > 0:
	n -= 1
	ans += alphabets[n % 26]
	n //= 26
print(ans[::-1])


N = int(input())
az = 'abcdefghijklmnopqrstuvwxyz'
ans = ''
while N:
	N -= 1
	ans = az[N % 26] + ans
	N = N // 26
print(ans)


N = int(input())
S = ''
while N:
	N -= 1
	S += chr(N % 26 + ord('a'))
	N //= 26
print(S[::-1])


N = int(input())
alpha = 'abcdefghijklmnopqrstuvwxyz'
ans = ''
while N:
	N -= 1
	ans = alpha[N % 26] + ans
	N = N // 26
print(ans)


n = int(input())
ans = ''
while n:
	n -= 1
	ans += chr(ord('a') + n % 26)
	n //= 26
print(ans[::-1])


n = int(input())
ans = ''
while n > 0:
	ans += chr((n - 1) % 26 + ord('A'))
	n = (n - 1) // 26
print(ans.lower()[::-1])


n = int(input())
ans = ''
for i in range(1, 99):
	if n <= 26 ** i:
		n -= 1
		for j in range(i):
			ans += chr(ord('a') + n % 26)
			n //= 26
		break
	else:
		n -= 26 ** i
print(ans[::-1])


A = int(input())
az = 'zabcdefghijklmnopqrstuvwxy'
ans = ''
while A / 26 > 0:
	ans = az[A % 26] + ans
	A = (A - 1) // 26
print(ans)


n = int(input())
z = ''
while n > 0:
	n -= 1
	z += chr(n % 26 + ord('a'))
	n //= 26
print(z[::-1])


n = int(input())
name = []
while n:
	n -= 1
	name.append(chr(97 + n % 26))
	n //= 26
name.reverse()
print(''.join(name))


n = int(input())
ans = ''
for i in range(14):
	if n == 0:
		break
	else:
		n -= 1
		ans += chr(ord('a') + n % 26)
		n = n // 26
rslt = ans[::-1]
print(rslt)


N = int(input())
ans = ''
while N > 0:
	N -= 1
	ans += chr(97 + N % 26)
	N = N // 26
print(ans[::-1])


n = int(input())
s = ''
while n:
	n -= 1
	s = chr(97 + n % 26) + s
	n //= 26
print(s)


n = int(input())
s = 'abcdefghijklmnopqrstuvwxyz'
ans = ''
while n > 0:
	n -= 1
	ans += s[n % 26]
	n //= 26
print(ans[::-1])


def int_to_str(n):
	if n == 0:
		return 'a'
	elif n == 1:
		return 'b'
	elif n == 2:
		return 'c'
	elif n == 2:
		return 'c'
	elif n == 2:
		return 'c'
	elif n == 2:
		return 'c'
	elif n == 2:
		return 'c'
	elif n == 2:
		return 'c'
	elif n == 2:
		return 'c'

def Base_10_to_n(X, n):
	if int(X / n):
		if X % n != 0:
			return Base_10_to_n(int(X / n), n) + chr(X % n + 96)
		else:
			return Base_10_to_n(int(X / n) - 1, n) + chr(26 + 96)
	if X % n != 0:
		return str(chr(X % n + 96))
	else:
		return ''
N = int(input())
s = Base_10_to_n(N, 26)
print(s)


n = int(input())
abc = 'abcdefghijklmnopqrstuvwxyz'
ans = ''
while True:
	n -= 1
	m = n % 26
	ans += abc[m]
	n = n // 26
	if n == 0:
		break
print(ans[::-1])


n = int(input()) - 1
a = []
q = n // 26
r = n % 26
a.insert(0, r)
while q >= 26:
	q -= 1
	r = q % 26
	a.insert(0, r)
	q //= 26
a.insert(0, q - 1)
b = []
for i in range(len(a)):
	if a[i] >= 0:
		b.append(chr(a[i] + 97))
print(*b, sep='')


q = int(input())
s = ''
while q != 0:
	q -= 1
	s += chr(q % 26 + 97)
	q = q // 26
print(s[::-1])


n = int(input())
name = ''
while n > 0:
	n -= 1
	name += chr(ord('a') + n % 26)
	n = n // 26
print(name[::-1])


N = int(input())
s = ''
while N != 0:
	N -= 1
	r = N % 26
	s += chr(ord('a') + r)
	N //= 26
print(s[::-1])


def f(N):
	if N == 0:
		return ''
	N -= 1
	return f(N // 26) + chr(97 + N % 26)
N = int(input())
print(f(N))


N = int(input())
res = ''
while N:
	N -= 1
	res = res + chr(ord('a') + int(N % 26))
	N = int(N / 26)
res = res[::-1]
print(res)


n = int(input())
a = ''
while n > 0:
	n -= 1
	rem = n % 26
	a += chr(97 + rem)
	n = (n - rem) // 26
print(a[::-1])


n = int(input())

def change(x):
	for i in range(26):
		if x == i:
			return 'abcdefghijklmnopqrstuvwxyz'[i]
r = []
while n >= 1:
	n = n - 1
	r.append(change(n % 26))
	n = n // 26
s = len(r)
for i in range(s):
	print(r[s - 1 - i], end='')


import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time, copy, bisect
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN
import sys
sys.setrecursionlimit(10 ** 7)
inf = 10 ** 20
mod = 10 ** 9 + 7
stdin = sys.stdin
ni = lambda : int(ns())
nf = lambda : float(ns())
na = lambda : list(map(int, stdin.readline().split()))
nb = lambda : list(map(float, stdin.readline().split()))
ns = lambda : stdin.readline().rstrip()
N = ni()
ans = 0
k = 26
ans = ''
while N != 0:
	if N % abs(k) == 0:
		ans += 'z'
		N -= 1
	else:
		ans += chr(N % abs(k) + 96)
	N //= k
print(ans[::-1])


N = int(input())
c = 0
while N - 26 ** c >= 0:
	N -= 26 ** c
	c += 1
d = [0] * (c - 1)
i = 0
for i in range(c):
	d.insert(c - 1, N % 26)
	N = (N - d[i]) // 26
	i += 1
e = []
s = ''
for i in range(2 * c - 1):
	e.append(chr(97 + d[i]))
	s += e[i]
print(s[c - 1:2 * c - 1])


n = int(input())
ans = ''
d = 'abcdefghijklmnopqrstuvwxyz'
while n != 0:
	n -= 1
	ans += d[n % 26]
	n //= 26
print(ans[::-1])


n = int(input())
ans = ''
i = 0
while n > 0:
	n -= 1
	a = n % 26
	ans += chr(97 + a)
	n //= 26
print(ans[::-1])


N = int(input())
Ans = ''
while N > 0:
	N -= 1
	Ans += chr(ord('a') + N % 26)
	N //= 26
print(Ans[::-1])


import sys
from collections import deque, defaultdict, Counter
from itertools import accumulate, product, permutations, combinations
from operator import itemgetter
from bisect import bisect_left, bisect_right
from heapq import heappop, heappush
from math import ceil, floor, sqrt, gcd, inf
from copy import deepcopy
import numpy as np
import scipy as sp

def base_n(n, base):
	if (n - 1) // base:
		return base_n((n - 1) // base, base) + [(n - 1) % base + 1]
	return [(n - 1) % base + 1]
INF = inf
MOD = 1000000007
n = int(input())
tmp = n
res = 0
res = ''.join([chr(i + 96) for i in base_n(n, 26)])
print(res)


n = int(input())
ans = ''
while n != 0:
	n -= 1
	ans += chr(97 + n % 26)
	n = n // 26
for c in reversed(ans):
	print(c, end='')


N = int(input())
name = ''
k = 0
p = 0
while N > p:
	k += 1
	p += 26 ** k
N -= p - 26 ** k + 1
for i in range(k):
	a = N % 26
	N //= 26
	name = chr(a + 97) + name
print(name)


MOD = 10 ** 9 + 1
n = int(input())
ans = ''
while n:
	ans = chr(ord('a') + (n + 25) % 26) + ans
	n = (n - 1) // 26
print(ans)


n = int(input())
ans = ''
check = 'abcdefghijklmnopqrstuvwxyz'
while n != 0:
	n -= 1
	ans += check[n % 26]
	n //= 26
print(ans[::-1])


n = int(input())
Z = ''
sou = 'Zabcdefghijklmnopqrstuvwxyz'
N = n
for i in range(100):
	x = N % 26
	N -= x
	if x == 0:
		x = 26
		N -= x
	Z += sou[x]
	if N == 0:
		break
	N //= 26
ans = Z[::-1]
print(ans)


from collections import deque
n = int(input())
st = deque()
while n > 0:
	num = (n - 1) % 26
	n = (n - 1) // 26
	st.appendleft(chr(num + 97))
print(*st, sep='')


num2alpha = lambda c: chr(c + 64)
N = int(input())
degit = 0
temp_degit = 0
top = 0
for i in range(1, 50):
	temp_degit += 1
	under = top + 1
	top += 26 ** i
	if under <= N and N <= top:
		degit = temp_degit
arr = []
for i in range(degit):
	if N % 26 == 0:
		arr.append(26)
		N -= 1
	else:
		arr.append(N % 26)
	N //= 26
rsl = ''
for i in reversed(arr):
	rsl += num2alpha(i)
print(rsl.lower())


N = int(input())
str = ''
while True:
	N -= 1
	str = chr(N % 26 + ord('a')) + str
	N //= 26
	if N <= 0:
		break
print(str)


N = int(input()) - 1
char = list('abcdefghijklmnopqrstuvwxyz')
ans = ''
i = N % 26
N //= 26
ans = char[i] + ans
while N > 0:
	N -= 1
	i = N % 26
	N //= 26
	ans = char[i] + ans
print(ans)
return


n = int(input())
result = ''
while n > 0:
	n -= 1
	result += chr(ord('a') + n % 26)
	n //= 26
print(result[::-1])


n = int(input())
ans = ''
cnt = 0
while n > 0:
	ans = chr((n - 1) % 26 + ord('a')) + ans
	n = (n - 1) // 26
print(ans)


N = int(input())
Ans = []
while N > 0:
	N -= 1
	Ans.append(chr(97 + N % 26))
	N //= 26
print(''.join(Ans[::-1]))


a = int(input())
name = ''
while a > 0:
	a -= 1
	name += chr(97 + a % 26)
	a //= 26
print(name[::-1])


n = int(input())
res = ''
while n > 0:
	(n, rem) = divmod(n - 1, 26)
	res = chr(97 + rem) + res
print(res)


n = int(input())
c = ''
while n > 0:
	n -= 1
	c += chr(ord('a') + n % 26)
	n //= 26
print(c[::-1])


n = int(input())
al = 'abcdefghijklmnopqrstuvwxyz'
s = ''
while n:
	n -= 1
	e = n % 26
	s = al[e] + s
	n //= 26
print(s)


N = int(input())
S = 'abcdefghijklmnopqrstuvwxyz'
ans = []
while N > 0:
	N -= 1
	ans.append(S[N % 26])
	N //= 26
print(''.join(ans[::-1]))


N = int(input()) - 1
rlt = ''
while N > -1:
	rlt = chr(ord('a') + N % 26) + rlt
	N = N // 26 - 1
print(rlt)


s = int(input()) - 1
d = []
while s >= 0:
	d.append(chr(s % 26 + 97))
	s //= 26
	s -= 1
t = ''
for i in reversed(d):
	t += i
print(t)


N = int(input())
s = ''
while N > 0:
	c = N % 26
	N = N // 26
	if c == 0:
		N -= 1
	if c != 0:
		s = chr(96 + c) + s
	else:
		s = chr(96 + 26) + s
print(s)


def __starting_point():
	N = int(input())
	N -= 1
	ans = []
	while True:
		if N >= 26:
			ans.insert(0, N % 26)
			N = N // 26 - 1
		else:
			ans.insert(0, N)
			break
	num2alpha = lambda c: chr(c + 97)
	for i in range(len(ans)):
		print(num2alpha(ans[i]), end='')
__starting_point()


(N, a) = (int(input()), '')
while 0 < N:
	N -= 1
	a += chr(97 + N % 26)
	N //= 26
print(a[::-1])


x = int(input())
ans = ''
while x > 0:
	x -= 1
	ans += chr(ord('a') + x % 26)
	x //= 26
print(ans[::-1])


n = int(input())
c = ''
while n:
	n -= 1
	c = chr(n % 26 + 97) + c
	n //= 26
print(c)


n = int(input())
s = ''
while n != 0:
	n -= 1
	tmp = n % 26
	s = chr(96 + tmp + 1) + s
	n //= 26
print(s)


N = int(input())
S = 0
Length = 0
count = 0
for i in range(1, 99):
	count += 1
	S += 26 ** i
	Length += 1
	if N <= S:
		break
k = N - S + 26 ** count
x = k - 1
ans = ''
for i in range(Length):
	r = x % 26
	ans += chr(ord('a') + r)
	q = x // 26
	x = q
print(ans[::-1])


a = 'abcdefghijklmnopqrstuvwxyz'
N = int(input())
name = ''
while N > 0:
	N -= 1
	name += a[N % 26]
	N //= 26
print(name[::-1])


(N, res) = (int(input()), '')
while N > 0:
	(N, R) = divmod(N - 1, 26)
	res = chr(65 + R) + res
print(res.lower())


N = int(input())
i = N
base = 26
Ans = ''
st = 'abcdefghijklmnopqrstuvwxyz'
while i != 0:
	if i > base:
		wkm = i % base
		wk = wkm // (base // 26)
		Ans = st[wk - 1] + Ans
		if wkm != 0:
			i -= wkm
		else:
			i -= base
		base = base * 26
	else:
		base = base // 26
		wk = i // base
		Ans = st[wk - 1] + Ans
		i = 0
print(Ans)


n = int(input())
s = ''
while n != 0:
	(n, v) = divmod(n, 26) if n % 26 else (n // 26 - 1, 26)
	s += chr(96 + v)
print(s[::-1])


n = int(input())
b = ''
while n > 0:
	n -= 1
	b += chr(ord('a') + n % 26)
	n = n // 26
print(b[::-1])


N = int(input())
ans = ''
while N:
	N -= 1
	ans = ans + chr(int(N % 26) + 97)
	N = N // 26
ans = ''.join(list(reversed(ans)))
print(ans)


import math
dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i', 10: 'j', 11: 'k', 12: 'l', 13: 'm', 14: 'n', 15: 'o', 16: 'p', 17: 'q', 18: 'r', 19: 's', 20: 't', 21: 'u', 22: 'v', 23: 'w', 24: 'x', 25: 'y', 26: 'z'}
n = int(input())
ans = str(dict[(n - 1) % 26 + 1])
n = (n - 1) // 26
while n:
	ans = str(dict[(n - 1) % 26 + 1]) + ans
	n = (n - 1) // 26
print(ans)


n = int(input())
l = []
while n:
	n -= 1
	x = n % 26
	l.insert(0, chr(x + ord('a')))
	n //= 26
print(''.join(l))


N = int(input())

def num2alpha(num):
	if num <= 26:
		return chr(96 + num)
	elif num % 26 == 0:
		return num2alpha(num // 26 - 1) + chr(122)
	else:
		return num2alpha(num // 26) + chr(96 + num % 26)
print(num2alpha(N))


n = int(input())
s = ''
while n > 0:
	div = (n - 1) % 26
	s = chr(div + 97) + s
	n = (n - div - 1) // 26
print(s)


N = int(input())
S = ''
while 0 < N:
	N -= 1
	S += chr(97 + N % 26)
	N //= 26
print(S[::-1])


n = int(input())
ans = ''
while n:
	n -= 1
	ans += chr(ord('a') + n % 26)
	n //= 26
print(''.join(list(ans[::-1])))


s = int(input())
ans = ''
while s > 0:
	s -= 1
	ans += chr(s % 26 + ord('a'))
	s //= 26
print(ans[::-1])


n = int(input())
ans = ''
ptr = 0
while n > 0:
	n -= 1
	temp = n % 26
	n = n // 26
	ans = chr(97 + temp) + ans
print(ans)


N = int(input())
l = []
while N:
	N -= 1
	l.append(chr(97 + N % 26))
	N //= 26
print(''.join(l[::-1]))


n = int(input())
ans = ''
while n:
	n -= 1
	ans += chr(n % 26 + 97)
	n = n // 26
print(*ans[::-1], sep='')


N = int(input())
ans = []
while N >= 1:
	N -= 1
	ans.append(chr(97 + N % 26))
	N //= 26
print(''.join(ans[::-1]))


n = int(input())
t = ''
while n > 0:
	n -= 1
	t += chr(97 + n % 26)
	n //= 26
print(t[::-1])


n = int(input())
res = ''
while n > 0:
	n -= 1
	res = 'abcdefghijklmnopqrstuvwxyz'[n % 26] + res
	n = n // 26
print(res)


import string
abc = list(string.ascii_lowercase)
n = int(input())
list1 = []
if n <= 26:
	print(abc[n - 1])
	return
while n > 26:
	d = n // 26
	r = n % 26
	if r == 0:
		d -= 1
		r = 26
	list1.append(abc[r - 1])
	n = d
list2 = list1 + [abc[d - 1]]
list2.reverse()
print(''.join(list2))


nb = int(input())
s = []
while nb > 0:
	nb -= 1
	s.append(chr(ord('a') + nb % 26))
	nb //= 26
roger = ''.join(s)
print(roger[::-1])


n = int(input())
i = 1
l = 26
while l < n:
	i += 1
	l += 26 ** i
n -= l - 26 ** i + 1
s = ''
for k in range(i):
	s += chr(n % 26 + ord('a'))
	n //= 26
print(s[::-1])


def ri():
	return int(input())

def rii():
	return [int(v) for v in input().split()]

def solve():
	N = ri()
	ans = ''
	while N:
		(N, r) = divmod(N - 1, 26)
		ans = chr(ord('a') + r) + ans
	print(ans)

def __starting_point():
	solve()
__starting_point()


def main():
	n = int(input())
	alphabets = 'zabcdefghijklmnopqrstuvwxy'
	answer_reversed = ''
	for i in range(100):
		idx = n % 26
		answer_reversed += alphabets[idx]
		if idx == 0:
			n -= 26
		else:
			n -= idx
		if n:
			n = n // 26
		else:
			break
	print(answer_reversed[::-1])

def __starting_point():
	main()
__starting_point()


n = int(input())
l = 'Xabcdefghijklmnopqrstuvwxyz'
ans = ''
while True:
	d = n % 26
	if d == 0:
		d = 26
	ans += l[d]
	n -= d
	if n == 0:
		break
	n //= 26
print(ans[::-1])


N = int(input())
t = ''
while N > 0:
	N -= 1
	t += chr(N % 26 + ord('a'))
	N //= 26
print(t[::-1])


n = int(input())
ans = ''
flag = False
while n != 0:
	n -= 1
	ans += chr(ord('a') + n % 26)
	n //= 26
print(ans[::-1])


n = int(input())
a = 'zabcdefghijklmnopqrstuvwxy'
b = ''
while n / 26 > 0:
	b = a[n % 26] + b
	n = (n - 1) // 26
print(b)


n = int(input())
l = []
s = ''
while n > 0:
	n = n - 1
	a = n % 26
	s = chr(a + 97) + s
	n = n // 26
print(s)


n = int(input())
b = 26
ans = []
for i in range(1, 99):
	if n <= b ** i:
		n -= 1
		for j in range(i):
			ans.append(chr(97 + n % b))
			n //= b
		break
	else:
		n -= b ** i
for k in range(1, len(ans) + 1):
	print(ans[-k], end='')


a = int(input())
S = ''
l = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
num = a % 26
while a > 0:
	if a % 26 != 0:
		S = l[a % 26 - 1] + S
		a = (a - a % 26) // 26
	else:
		S = l[a % 26 - 1] + S
		a = (a - 26) // 26
print(S)


n = int(input())
a = 'xabcdefghijklmnopqrstuvwxyz'
ans = ''
while True:
	d = n % 26
	if d == 0:
		d = 26
	ans += a[d]
	n -= d
	if n == 0:
		break
	n = n // 26
print(ans[::-1])


n = int(input())
r = []
while n:
	n -= 1
	r.append(chr(ord('a') + n % 26))
	n //= 26
print(*r[::-1], sep='')


def num2alpha(num):
	if num <= 26:
		return chr(64 + num)
	elif num % 26 == 0:
		return num2alpha(num // 26 - 1) + chr(90)
	else:
		return num2alpha(num // 26) + chr(64 + num % 26)
num = int(input())
print(num2alpha(num).lower())


n = int(input())
l = []
while n > 0:
	l.append(chr(97 + (n - 1) % 26))
	n -= 1
	n //= 26
print(''.join(l[::-1]))


n = int(input())
name = ''
for i in range(15):
	n = n - 1
	name = name + chr(97 + n % 26)
	n = n // 26
	if n == 0:
		break
print(name[::-1])


n = int(input())
ans = ''
while 0 < n:
	d = n % 26
	if d == 0:
		d = 26
	ans = chr(int(d) + 96) + ans
	n = (n - d) / 26
print(ans)


(x, ar) = (int(input()) - 1, [])
if x == 0:
	ar.append('a')
else:
	while x > 0:
		ar.append(chr(97 + x % 26))
		x //= 26
		x = x - 1
		if x == 0:
			ar.append('a')
ar.reverse()
ans = ''.join(ar)
print(ans)


def main(N):
	ans = None
	alphabets = []
	for i in range(97, 97 + 26):
		alphabets.append(chr(i))
	tmp = 0
	for i in range(1, 20):
		if tmp + 26 ** i >= N:
			break
		tmp += 26 ** i
	N -= tmp
	tmp = 0
	ans = []
	for j in range(1, i + 1):
		for k in range(26):
			if tmp + 26 ** (i - j) >= N:
				ans.append(k)
				break
			tmp += 26 ** (i - j)
	ans = ''.join([alphabets[id] for id in ans])
	return ans

def __starting_point():
	N = int(input())
	ans = main(N)
	print(ans)
__starting_point()


n = int(input())
d = 'abcdefghijklmnopqrstuvwxyz'
x = n
s = ''
n -= 1
while n >= 0:
	s += d[n % 26]
	n = n // 26
	n -= 1
print(s[::-1])


s = int(input())
c = ''
while s != 0:
	s -= 1
	c += chr(ord('a') + s % 26)
	s = s // 26
print(c[::-1])


N = int(input())
ans = ''
while N:
	m = (N + 25) % 26
	ans += chr(ord('a') + m)
	N = (N - m) // 26
print(ans[::-1])


N = int(input())
res = ''
while N > 0:
	N -= 1
	r = N % 26
	res = chr(r + 97) + res
	N //= 26
print(res)


n = int(input())
res = ''
while n:
	n -= 1
	res += chr(ord('a') + n % 26)
	n //= 26
print(res[::-1])


n = int(input())
res = ''
while n:
	n -= 1
	(n, y) = divmod(n, 26)
	res = chr(y + 97) + res
print(res)


n = int(input())
l = []
while n != 0:
	n = n - 1
	l.append(chr(ord('a') + n % 26))
	n = int(n / 26)
l = l[::-1]
print(''.join(l))


N = int(input()) - 1
keta = 1
cumsum = 0
oldcumsum = 0
while True:
	cumsum += 26 ** keta
	if cumsum > N:
		break
	else:
		oldcumsum = cumsum
	keta += 1
N -= oldcumsum
name = ''
for k in range(1, keta + 1):
	ch_n = N // 26 ** (keta - k)
	ch = chr(ord('a') + ch_n)
	name += ch
	N -= ch_n * 26 ** (keta - k)
print(name)


N = int(input())
s = 1
t = 0
while N > 26 ** s + t:
	t += 26 ** s
	s += 1
N -= t
ans = []
for i in range(s):
	c = 0
	while N > 26 ** (s - i - 1):
		N -= 26 ** (s - i - 1)
		c += 1
	ans.append(chr(97 + c))
print(''.join(ans))


n = int(input())
alf = '0abcdefghijklmnopqrstuvwxyz'
ans = ''
while n != 0:
	x = n % 26
	if x == 0:
		x = 26
	ans += alf[x]
	n -= x
	n //= 26
print(ans[::-1])


import string
from collections import deque
number = int(input())
q = (number - 1) // 26
r = number % 26
sss = deque()
while True:
	sss.appendleft(string.ascii_lowercase[r - 1])
	if q == 0:
		break
	else:
		r = q % 26
		q = (q - 1) // 26
print(''.join(list(sss)))


n = int(input())
r = ''
e = 26
while n > 0:
	n -= 1
	r = chr(97 + n % e) + r
	n //= e
print(r)


n = int(input())
n2 = n
i = 1
while True:
	if n2 > 26 ** i:
		n2 = n2 - 26 ** i
		i = i + 1
	else:
		break
lst = []
for j in range(i - 1):
	k = j + 1
	n = n - 26 ** k
n = n - 1
for j in range(i):
	k = i - j - 1
	x = n // 26 ** k
	lst.append(x)
	n = n - 26 ** k * x
for j in range(len(lst)):
	if j != len(lst) - 1:
		print(chr(int(97 + lst[j])), end='')
	else:
		print(chr(int(97 + lst[j])))


N = int(input())
t = ''
while N > 0:
	t += chr((N - 1) % 26 + 97)
	N = (N - 1) // 26
print(t[::-1])


n = int(input()) - 1
radix = 26
ord_a = 97
ans = ''
while n >= 0:
	(n, m) = divmod(n, radix)
	ans = chr(m + ord_a) + ans
	n -= 1
print(ans)


N = int(input())
al = [chr(ord('a') + i) for i in range(26)]
ans = ''
while N > 0:
	N -= 1
	ans += al[N % 26]
	N //= 26
print(ans[::-1])


import string
n = int(input())
ans = ''
while n > 0:
	n -= 1
	ans = chr(ord('a') + n % 26) + ans
	n //= 26
print(ans)


N = int(input())
l = ''
while N > 0:
	N -= 1
	l += chr(ord('a') + N % 26)
	N //= 26
print(l[::-1])


n = int(input())
ret = ''
alphabet = list('abcdefghijklmnopqrstuvwxyz')
while n:
	n -= 1
	(n, mod) = divmod(n, 26)
	ret += alphabet[mod]
print(ret[::-1])


N = int(input())
n = N
S = 'abcdefghijklmnopqrstuvwxyz'
ans = ''
keta = 1
tw = []
r = 26
l = 1
i = 2
tw.append(l)
while 1:
	if l <= N <= r:
		break
	(l, r) = (r + 1, r + 26 ** i)
	tw.append(l)
	i += 1
	keta += 1
for x in tw[::-1]:
	twp = 26 ** (keta - 1)
	keta -= 1
	a = (N - x) // twp
	N -= twp * (a + 1)
	ans += S[a]
print(ans)


N = int(input())
ans = ''
while True:
	n = int(N / 26)
	r = N % 26
	if r == 0:
		r = 26
		n -= 1
	ans = chr(96 + r) + ans
	if n == 0:
		break
	else:
		N = n
print(ans)


N = int(input())
ans = ''
for _ in range(10 ** 5):
	N -= 1
	ans += chr(ord('a') + N % 26)
	N = N // 26
	if N <= 0:
		break
print(ans[::-1])


N = int(input())
ans = list()
while N > 0:
	N -= 1
	ans.append(chr(ord('a') + N % 26))
	N //= 26
print(''.join(ans[::-1]))


N = int(input())
Z = 26
retval = ''
while N > 0:
	retval = chr((N - 1) % Z + 97) + retval
	N = (N - 1) // Z
print(retval)


a_list = [chr(ord('a') + i) for i in range(26)]
n = int(input())
l_list = []
ans = ''
while n > 0:
	if n % 26 == 0:
		l_list.append(26)
		n = n // 26 - 1
	else:
		l_list.append(n % 26)
		n = n // 26
l_list = l_list[::-1]
for i in l_list:
	ans += a_list[i - 1]
print(ans)


N = int(input())
name = ''
while N > 0:
	(N, r) = divmod(N - 1, 26)
	name = chr(65 + r) + name
print(name.lower())


n = int(input())
ans = list()
x = ord('a')
while n > 0:
	n -= 1
	ans.append(chr(x + n % 26))
	n //= 26
print(''.join(ans[::-1]))


N = int(input())
dog = ''
while N > 0:
	N -= 1
	dog += chr(ord('a') + N % 26)
	N //= 26
print(dog[::-1])


from string import ascii_lowercase
N = int(input())
d = ''
while N > 0:
	N -= 1
	c = N % 26
	N = N // 26
	d = d + ascii_lowercase[c]
print(d[::-1])


n = int(input())
p = list('zabcdefghijklmnopqrstuvwxy')
num = ''
while n > 26:
	a = p[n % 26]
	num += a
	if n % 26 == 0:
		n = n // 26 - 1
	else:
		n = n // 26
num += p[n % 26]
new_num = num[::-1]
print(new_num)


import math
import numpy as np
N = int(input())
ans = []

def calc(a, ans):
	if a <= 26:
		ans.append(a % 27)
		ans.reverse()
		return ans
	elif a % 26 != 0:
		ans.append(a % 26)
		return calc(a // 26, ans)
	else:
		ans.append(26)
		return calc(a // 26 - 1, ans)
ans = calc(N, ans)
for i in range(len(ans)):
	ans[i] = chr(ans[i] + 96)
print(''.join(ans))


def main():
	N = int(input())
	digits = []
	while N != 0:
		digits.append(N % 26)
		if digits[-1] == 0:
			digits[-1] = 26
			N //= 26
			N -= 1
		else:
			N //= 26
	digits.reverse()
	for d in digits:
		print(chr(96 + d), end='')
	print()

def __starting_point():
	main()
__starting_point()


n = int(input())
abc = 'abcdefghijklmnopqrstuvwxyz'
ans = ''
while True:
	if n % 26 == 0:
		ans += 'z'
		n = (n - 1) // 26
	else:
		ans += abc[n % 26 - 1]
		n //= 26
	if n == 0:
		print(ans[::-1])
		break


N = int(input())
S = []
while N:
	N -= 1
	S.append(chr(97 + N % 26))
	N //= 26
print(''.join(S[::-1]))


n = int(input())
res = ''
while n != 0:
	mod = (n - 1) % 26
	n = (n - 1) // 26
	res += chr(97 + mod)
print(res[::-1])


N = int(input())
ans_reverse = ''

def num_to_alphabet(n):
	return chr(ord('a') + n)
while N:
	N -= 1
	ans_reverse += num_to_alphabet(N % 26)
	N //= 26
print(ans_reverse[::-1])


N = int(input())
res = ''
d = 26
while N:
	N -= 1
	c = N % 26
	res += chr(97 + c)
	N //= 26
print(res[::-1])


def f(n):
	if n == 0:
		return ''
	n -= 1
	return f(n // 26) + chr(ord('a') + n % 26)
n = int(input())
print(f(n))


n = int(input())
ans = ''
while n > 0:
	n -= 1
	(n, b) = divmod(n, 26)
	ans += chr(97 + b)
print(ans[::-1])