import sys input = lambda : sys.stdin.readline().rstrip() sys.setrecursionlimit(2*10**5+10) write = lambda x: sys.stdout.write(x+"\n") _print = lambda *x: print(*x, file=sys.stderr) def gcd2(a, b): """a*x + b*y = gcd(a,b)なるx,yも求める """ l = [] while b: l.append(divmod(a,b)) a, b = b, a%b x, y = 1, 0 for aa,bb in l[::-1]: x, y = y, x - aa*y return a, x, y def modinv(x, M): """素数ではないM、Mと互いに素なxに対し x * y == 1 mod M なるyを求める """ a,xx,yy = gcd2(x,M) return a,xx%M ### 離散対数問題 def dlog(x,y,M): """pow(x,i,M)==y なるiを返す 存在しない場合Noneを返す """ l = int(M**0.5)+1 s = set() d = {} v = x%M for i in range(1,l+2): s.add(v) d[v] = i v *= x v %= M v = y # print(d) _,tmp = modinv(pow(x,l,M), M) # tmp = pow(pow(x,l,M), M-2, M) for i in range(l+1): if v in s: vv = x%M for j in range(1,l+2): if vv==v: break vv *= x vv %= M # j = d[v] return i*l + j v *= tmp v %= M return None t = int(input()) from math import gcd for _ in range(t): n = int(input()) while n%2==0: n //= 2 while n%5==0: n //= 5 if n==1: ans = 1 else: ans = dlog(10,1,n) print(ans)