Living Sequence (Codeforces 1811E)
Tags: Math, number theory

In Japan, the number $$$4$$$ reads like death, so Bob decided to build a live sequence. Living sequence $$$a$$$ contains all natural numbers that do not contain the digit $$$4$$$. $$$a = [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, \ldots]$$$.For example, the number $$$1235$$$ is part of the sequence $$$a$$$, but the numbers $$$4321$$$, $$$443$$$ are not part of the sequence $$$a$$$.Bob realized that he does not know how to quickly search for a particular number by the position $$$k$$$ in the sequence, so he asks for your help.For example, if Bob wants to find the number at position $$$k = 4$$$ (indexing from $$$1$$$), you need to answer $$$a_k = 5$$$.

Input: The first line of input data contains a single integer $$$t$$$ ($$$1 \le t \le 10^4$$$) — the number of test cases.In the only line of each test case, there is a single integer $$$k$$$ ($$$1 \le k \le 10^{12}$$$) — the position Bob is interested in.

Output: For each test case, print on a separate line the number $$$a_k$$$ in indexing with $$$1$$$.


Sample Inputs:
7
3
5
22
10
100
12345
827264634912

Sample Outputs:
3
6
25
11
121
18937
2932285320890

Solution (Python):
import sys
input = sys.stdin.readline
s9 = '012356789'
t = int(input())
for _ in range(t):
    a = int(input())
    ans = ''
    while a > 0:
        ans = s9[a % 9] + ans
        a //= 9
    print(ans)

Solution (Python):
import sys
input = sys.stdin.readline
s9 = list('012356789')
t = int(input())
for _ in range(t):
    a = int(input())
    ans = ''
    while a > 0:
        ans = s9[a % 9] + ans
        a //= 9
    print(ans)

Solution (Python):
import sys
input = sys.stdin.readline

def readList():
    return list(map(int, input().split()))

def readInt():
    return int(input())

def readInts():
    return map(int, input().split())

def readStr():
    return input().strip()

def solve():
    k = readInt()
    ans = []
    while k:
        ans.append(k % 9) if k % 9 < 4 else ans.append(k % 9 + 1)
        k //= 9
    return ''.join([str(v) for v in ans[::-1]])
for _ in range(int(input())):
    print(solve())