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 翻译