[ABC044D] 桁和
题意翻译
```
题目描述
对于2以上的整数b和一个1以上的整数n,函数f(b,n)的定义如下:
1.若n<b,f(b,n)=n;
2.若n>=b,f(b,n)=f(b,floor(n/b))+(n%b).
说白了就是即n在b进制下各位数的和 举个例子:
f(10,87654)=8+7+6+5+4=30
f(100,87654)=8+76+54=138
设函数f(b,n)的值为s;
输入输出格式
输入格式
输入包含两个数,代表n,s的值
输出格式
输出包含1个数,是b的值,如果找不到符合要求的b值,则输出-1
```
注:此为[Over_The_Best](https://www.luogu.org/space/show?uid=118196)翻译,但他被禁言了,由我代发
题目描述
[problemUrl]: https://atcoder.jp/contests/abc044/tasks/arc060_b
$ 2 $ 以上の整数 $ b $ および $ 1 $ 以上の整数 $ n $ に対し、関数 $ f(b,n) $ を次のように定義します。
- $ n\ <\ b $ のとき $ f(b,n)\ =\ n $
- $ n\ \geq\ b $ のとき $ f(b,n)\ =\ f(b,\,{\rm\ floor}(n\ /\ b))\ +\ (n\ {\rm\ mod}\ b) $
ここで、$ {\rm\ floor}(n\ /\ b) $ は $ n\ /\ b $ を超えない最大の整数を、 $ n\ {\rm\ mod}\ b $ は $ n $ を $ b $ で割った余りを表します。
直感的に言えば、$ f(b,n) $ は、$ n $ を $ b $ 進表記したときの各桁の和となります。 例えば、
- $ f(10,\,87654)=8+7+6+5+4=30 $
- $ f(100,\,87654)=8+76+54=138 $
などとなります。
整数 $ n $ と $ s $ が与えられます。 $ f(b,n)=s $ を満たすような $ 2 $ 以上の整数 $ b $ が存在するか判定してください。 さらに、そのような $ b $ が存在するならば、その最小値を求めてください。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ n $ $ s $
输出格式
$ f(b,n)=s $ を満たす $ 2 $ 以上の整数 $ b $ が存在するならば、そのような $ b $ の最小値を出力せよ。 そのような $ b $ が存在しないならば、代わりに `-1` を出力せよ。
输入输出样例
输入样例 #1
87654
30
输出样例 #1
10
输入样例 #2
87654
138
输出样例 #2
100
输入样例 #3
87654
45678
输出样例 #3
-1
输入样例 #4
31415926535
1
输出样例 #4
31415926535
输入样例 #5
1
31415926535
输出样例 #5
-1
说明
### 制約
- $ 1\ \leq\ n\ \leq\ 10^{11} $
- $ 1\ \leq\ s\ \leq\ 10^{11} $
- $ n,\,s $ はいずれも整数である