100443: [AtCoder]ABC044 D - Digit Sum
Description
Score : $500$ points
Problem Statement
For integers $b (b \geq 2)$ and $n (n \geq 1)$, let the function $f(b,n)$ be defined as follows:
- $f(b,n) = n$, when $n < b$
- $f(b,n) = f(b,\,{\rm floor}(n / b)) + (n \ {\rm mod} \ b)$, when $n \geq b$
Here, ${\rm floor}(n / b)$ denotes the largest integer not exceeding $n / b$, and $n \ {\rm mod} \ b$ denotes the remainder of $n$ divided by $b$.
Less formally, $f(b,n)$ is equal to the sum of the digits of $n$ written in base $b$. For example, the following hold:
- $f(10,\,87654)=8+7+6+5+4=30$
- $f(100,\,87654)=8+76+54=138$
You are given integers $n$ and $s$. Determine if there exists an integer $b (b \geq 2)$ such that $f(b,n)=s$. If the answer is positive, also find the smallest such $b$.
Constraints
- $1 \leq n \leq 10^{11}$
- $1 \leq s \leq 10^{11}$
- $n,\,s$ are integers.
Input
The input is given from Standard Input in the following format:
$n$ $s$
Output
If there exists an integer $b (b \geq 2)$ such that $f(b,n)=s$, print the smallest such $b$.
If such $b$ does not exist, print -1
instead.
Sample Input 1
87654 30
Sample Output 1
10
Sample Input 2
87654 138
Sample Output 2
100
Sample Input 3
87654 45678
Sample Output 3
-1
Sample Input 4
31415926535 1
Sample Output 4
31415926535
Sample Input 5
1 31415926535
Sample Output 5
-1