#CYF0045. 神奇的函数

神奇的函数

题目背景

现在有一个函数 f(x),xN+f(x), x \in N_+N+N_+ 代表正整数集合,该函数会将 xx 倒着写出来,并且去掉前导 00 ,比如 $f(123) = 321, f(100) = 1, f(120) = 21, f(111) = 111$ 。

题目描述

现在我们重新定义一个函数 g(x)=xf(f(x)),xN+g(x) = \frac{x}{f(f(x))}, x \in N_+ 。给定一个 nn ,请计算出 x(1xn)x (1 \leq x \leq n) 在函数 g(x)g(x) 的不同值的个数。

输入格式

输入多行。

第一行输入一个 tt ,代表有 tt 组测试数据。

接下来 tt 行,每行输入一个正整数 nn

输出格式

输出两行。

对于每一组测试数据,输出 x(1xn)x (1 \leq x \leq n) 在函数 g(x)g(x) 的不同值的个数。

样例 #1

样例输入 #1

5
4
37
998244353
1000000007
12345678901337426966631415

样例输出 #1

1
2
9
10
26

提示

样例解释】:

  • 对于第一组测试样例:$\\ x = 1, g(1) = \frac{1}{f(f(1))} = 1, \\ x = 2, g(2) = \frac{2}{f(f(2))} = 1, \\ x = 3, g(3) = \frac{3}{f(f(3))} = 1, \\ x = 4, g(4) = \frac{4}{f(f(4))} = 1$ 所以只有一个不同的值。

数据范围】:

测试点编号 nn \geq nn \leq
01 ~ 10 11 10910^9
11 ~ 15 101810^{18}
16 ~ 20 1010010^{100}

对于 100%100\% 的数据,保证 1t105,1n101001 \leq t \leq 10^5, 1 \leq n \leq 10^{100}​​ 。