AT_abc235_d [ABC235D] Multiply and Rotate
题目描述
有一个正整数 $a$。黑板上写着一个十进制的数。
当黑板上当前写着的数为 $x$ 时,高桥君可以进行以下任意一种操作,改变黑板上的数:
- 擦掉 $x$,并将 $x$ 乘以 $a$ 的结果以十进制写在黑板上。
- 将 $x$ 视为字符串,把末尾的数字移动到字符串的开头。
但只有当 $x \geq 10$ 且 $x$ 不能被 $10$ 整除时,才能进行此操作。
例如,当 $a = 2, x = 123$ 时,高桥君可以进行以下任意一种操作:
- 擦掉 $x$,写上 $x \times a = 123 \times 2 = 246$。
- 将 $x$ 视为字符串,把 `123` 的末尾数字 `3` 移到开头。黑板上的数会从 $123$ 变为 $312$。
最开始,黑板上写着 $1$。请问最少需要多少次操作,才能将黑板上的数变为 $N$?如果无论如何都无法将黑板上的数变为 $N$,请输出 $-1$。
输入格式
输入以如下格式从标准输入读入。
> $a$ $N$
输出格式
请输出答案。
说明/提示
## 限制条件
- $2 \leq a < 10^6$
- $2 \leq N < 10^6$
- 输入均为整数。
## 样例解释 1
通过如下操作,可以在 $4$ 次操作内将黑板上的数从 $1$ 变为 $72$:
- 执行第 $1$ 种操作,黑板上的数变为 $1 \to 3$。
- 执行第 $1$ 种操作,黑板上的数变为 $3 \to 9$。
- 执行第 $1$ 种操作,黑板上的数变为 $9 \to 27$。
- 执行第 $2$ 种操作,黑板上的数变为 $27 \to 72$。
无法在 $3$ 次及以下操作内变为 $72$,因此答案为 $4$。
## 样例解释 2
无论如何操作,都无法将黑板上的数变为 $5$。
## 样例解释 3
通过合理选择操作,可以按如下顺序 $1 \to 2 \to 4 \to 8 \to 16 \to 32 \to 64 \to 46 \to 92 \to 29 \to 58 \to 116 \to 611$,共 $12$ 次操作将黑板上的数变为 $611$,且这是最少次数。
由 ChatGPT 4.1 翻译