你和大 J 是好朋友。你们正在玩一个猜数字的游戏。 大 J 心里有两个个正整数 $k$ 和 $n$。他会和你说 $k!$ 的最后 $n$ 个数字,如 $k!$ 不够 $n$ 个数字则会补上前导零。 例如 $k=5,n=4$,他会跟你说「0120」。 你的任务就是猜出大 J 心目中的 $k$。 大 J 不会说谎,即至少有一个 $k$ 符合他的说话。
输入
大 J 所说的数字,即一条长 $n$ 的字符串,代表 $k!$ 的最后 $n$ 个数字。
输出
如 $k$ 有无限多个可能性,输出 -1
。
否则,在一行输出所有可能的 $k$,以空格分开,且依升序排列。
数据范围
对于所有测试点,$1 \le n \le 10^6$,且大 J 心目中的 $k$ 符合 $1 \le k \le 10^6$。 可是,你应该找出所有可能的 $k$,包括大于 $10^6$ 的那些。
测试点 | 限制 |
---|---|
1-5 | $1 \le n \le 9$ |
6-10 | $1 \le n, k \le 1000$ |
11-20 | 保证只有一个符合的 $k$ |
21-25 | $k \le 9 \times 10^5$ |
26-30 | 沒有更多限制 |
Sample Test Cases
Input | Output | |
---|---|---|
0120 | 5 | |
76640000 | 20 23 | |
$20! = 2432902008176640000, 23! = 25852016738884976640000.$ 可以证明没有其他符合的 $k$. | ||
00 | -1 |
Scoring: Per Case
Authored by s17f18
Appeared in 2023 Mini Contest 7 (sdic练习)