X가 10이하인 경우, 최약수는 1, 2, 5, 10
X가 100이하인 경우, 최약수는 10, 20, 25, 50
X가 1000이하인 경우, 최약수는 100, 125, 200, 250, 500
X가 10^n (n>3)이하인 경우, 최약수는 100(10(n-2)), 125(10(n-2)), 200(10(n-2)), 250(10(n-2)), 500(10(n-2))
--> X의 길이가 n인경우, 최약수+=5(n-4), 100(10(n-3)), 125(10(n-3)), 200(10(n-3)), 250(10(n-3)), 500(10(n-3))
즉, 1000부터 10단위로 최약수는 5개씩 늘어나고, 100k, 125k, 200k, 250k, 500k를 넘는지 카운트.
res=[]
for m in range(int(input())):
tmp=0
X=int(input())
li=[{1,2,5},{10,20,25,50},{100,125,200,250,500}]
for i in li[0]:
if i<=X:
tmp+=1
for i in li[1]:
if i<=X:
tmp+=1
for i in li[2]:
if i<=X:
tmp+=1
if X>=1000:
tmp+=5*(len(str(X))-4)
for i in li[2]:
if i*(10**(len(str(X))-3))<=X:
tmp+=1
res.append(tmp)
for i in range(len(res)):
print("#%d %s"%(i+1,res[i]))