Problem: 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?"

Submission attempts (in order):
def nod(n) :
    i = 1
    while n > 26 ** i :
        n = n - 26 ** i
        i += 1
    return i

n = int(input())
i = nod(n)
demo = [26 ** j for j in range(12)]
demo1 = []
k = 0
for j in demo :
    k += j
    demo1.append(k)
n = n - demo1[i - 1] + 1
i -= 1
ans = []
while i >= 0 :
    k = n // (26 ** i)
    if (26 ** i) * k >= n and n != 26:
        k -= 1
    n -= (26 ** i) * k
    if i > 0 :
        ans.append(chr(96 + k + 1))
    else :
        ans.append(chr(96 + k))
    i -= 1
print(''.join(map(str,ans)))


def nod(n) :
    i = 1
    while n > 26 ** i :
        n = n - 26 ** i
        i += 1
    return i

n = int(input())
i = nod(n)
demo = [26 ** j for j in range(12)]
demo1 = []
k = 0
for j in demo :
    k += j
    demo1.append(k)
n = n - demo1[i - 1] + 1
print(n)
i -= 1
ans = []
while i >= 0 :
    k = n // (26 ** i)
    if (26 ** i) * k >= n and n != 26:
        k -= 1
    n -= (26 ** i) * k
    print(n,k)
    if i > 0 :
        ans.append(chr(96 + k + 1))
    else :
        ans.append(chr(96 + k))
    i -= 1
print(''.join(map(str,ans)))


def nod(n) :
    i = 1
    while n > 26 ** i :
        n = n - 26 ** i
        i += 1
    return i
 
n = int(input())
i = nod(n)
##print(i)
demo = [26 ** j for j in range(12)]
demo1 = []
k = 0
for j in demo :
    k += j
    demo1.append(k)
##print(demo)
##print(demo1)
n = n - demo1[i - 1] + 1
##print(n)
##print(n / 26)
if n / 26 != n // 26 :
    i -= 1
    ans = []
    while i >= 0 :
        k = n // (26 ** i)
        n -= (26 ** i) * k
        if i > 0 :
            ans.append(chr(96 + k + 1))
        else :
            ans.append(chr(96 + k))
        i -= 1
    print(''.join(map(str,ans)))
else :
    i -= 1
    ans = []
    while i >= 0 :
        k = n // (26 ** i)
        n -= (26 ** i)*k
        if n > 0 :
            if i > 1 :
    
                ans.append(chr(96+k+1))
            elif i == 1 :
    
                ans.append(chr(96 + k))
            else :
                ans.append('z')
        else :
                ans.append(chr(96 + k))
                
                while i > 0 :
                    ans.append('z')
                    i -= 1
                break
        i -= 1
    print(''.join(map(str,ans)))


Verdicts: Wrong Answer

Wrong Answer

Accepted