100443: [AtCoder]ABC044 D - Digit Sum

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

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

Input

题意翻译

``` 题目描述 对于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)翻译,但他被禁言了,由我代发

加入题单

算法标签: