#7304. 反向找进制

反向找进制

题目描述

通常我们会把一个十进制整数转换成某个进制下的表示。现在反过来:给定一个十进制整数 NN 和一个数字串 SS,请判断是否存在一个进制 BB,使得 NNBB 进制下的表示正好等于 SS

例如,若 S=111S=111,那么它在 BB 进制下表示的十进制值为:

1×B2+1×B+11\times B^2+1\times B+1

如果这个值等于 NN,则 BB 是一个可行进制。

请你找出最小的可行进制。如果不存在,输出 1-1

输入格式

一行,包含一个整数 NN 和一个数字串 SS

输出格式

输出一个整数,表示最小的可行进制;如果不存在,输出 1-1

样例 1

31 111
5

样例解释

11111155 进制下的值为:

1×52+1×5+1=311\times 5^2+1\times 5+1=31

所以答案为 55

样例 2

10 101
3

数据范围

  • 1N1091 \le N \le 10^9
  • SS 只包含数字字符 09
  • 1S101 \le |S| \le 10
  • 进制 BB 满足 2B1062 \le B \le 10^6
  • 保证 SS 的首位不为 0

提示

一个合法进制必须大于 SS 中出现的最大数字。