设答案为 n,其十进制数位长度为 d,那么题目条件就是:
d⋅n=x
因此对于每个输入的 x,我们只需要枚举可能的数位长度 d。
由于 1≤n≤1018,所以十进制数位长度只可能是 1∼18。
给定一个正整数 x,请你构造一个十进制正整数n,使得“ n 的十进制数位长度 与 n 的值 ”的乘积恰好等于 x。 这里,“十进制数位长度” 指的是n的十进制表示中,去掉所有前导零后剩余的数字个数。例如:
0 的数位长度为 1;7 的数位长度为1;120 的数位长度为3
每个测试文件均包含多组测试数据:
第一行输入一个整数 T(1≤T≤2×105),表示数据组数;
此后 T 行,每行输入一个正整数 x(1≤x≤1018)
对于每组数据,输出一个整数。如果存在“len(n)×n=x”,输出任意一个符合条件的n;如果不存输出−1。其中n必须为正整数,且满足1≤n≤1018
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
输入
4
1
3
20
200
输出
1
3
10
-1
说明
当x=1 时,n=1 满足 len(1)⋅1=1;
当x=3 时,n=3 满足 len(3)⋅3=1⋅3=3;
当 x=20时,n=10满足 len(10)⋅10=2⋅10=20;
当 x=200时,不存在任何n 满足条件,因此输出 −1。