CF303D Rotatable Number
题目描述
Bike 是一个非常聪明且喜欢数学的男孩。他受 $142857$ 启发,发明了一种数字,称为“可旋转数”。
如你所见,$142857$ 是一个神奇的数字,因为它的任何一种旋转形式都可以通过将该数字分别与 $1,2,...,6$(从 $1$ 到该数字长度的整数)相乘得到。这里的旋转,指的是将数字的最后若干位移到最前面。例如,$12345$ 的所有旋转为:$12345, 51234, 45123, 34512, 23451$。值得一提的是,允许前导零的存在。因此,$4500123$ 和 $0123450$ 都可以通过旋转 $0012345$ 得到。由此可见,$142857$ 符合这一条件。所有的 $6$ 个等式都在 $10$ 进制下成立:
- $142857·1=142857$;
- $142857·2=285714$;
- $142857·3=428571$;
- $142857·4=571428$;
- $142857·5=714285$;
- $142857·6=857142$。
现在,Bike 遇到了一个问题。他将“可旋转数”的概念推广到任意进制 $b$。如上所述,$142857$ 是 $10$ 进制下的“可旋转数”。另一个例子是 $0011$ 在 $2$ 进制下。所有 $4$ 个等式均在 $2$ 进制下成立:
- $0011·1=0011$;
- $0011·10=0110$;
- $0011·11=1001$;
- $0011·100=1100$。
现在,他想找出最大的 $b$($1
输入格式
一行,包含两个用空格分隔的整数 $n,x$,满足 $1\le n \le 5\cdot 10^{6}$,$2\le x\le 10^{9}$。
输出格式
输出一个整数——你找到的最大的 $b$。如果不存在这样的 $b$,请输出 $-1$。
说明/提示
由 ChatGPT 5 翻译