UVA10677 Base Equality
题目描述
作为一名程序员,我时常因十进制与十六进制之间的繁琐转换而沮丧。既然 16 进制如此实用,为何日常计数却采用 10 进制?显然因为并非所有人都是计算机爱好者。也许有一天世界会认识到十六进制的优势,但在此之前,我必须掌握进制转换——毕竟同一数字在不同进制下的表象往往大相径庭。
不过数字在不同进制间可能呈现奇特关联。例如:
$1040_{10} \times 4 = 1040_{16}$
即满足:
$$
(1 \times 10^3 + 0 \times 10^2 + 4 \times 10^1 + 0 \times 10^0) \times 4 = (1 \times 16^3 + 0 \times 16^2 + 4 \times 16^1 + 0 \times 16^0)
$$
这引出一个问题:**何时某数在基数 $B_1$ 下的数字序列,恰好等于其倍数在基数 $B_2$ 下的序列?**
**形式化定义:**
给定 $B_1 < B_2$(正整数),数字序列 $a_0, a_1, \ldots, a_k$($\forall a_i \in [0, B_1 - 1]$)。
是否存在正整数 $c$ 满足:
$$
\left( \sum_{i=0}^k a_i \times B_1^i \right) \times c = \sum_{i=0}^k a_i \times B_2^i
$$
输入格式
第一行输入测试用例数 $n$(正整数)。
接下来 $n$ 行每行包含四个整数:
$B_1, B_2, r_1, r_2$
满足约束:
$9 < B_1 < B_2 < 100$
$0 < r_1 < r_2 < 10000$
**注意**:所有输入均为十进制数。
输出格式
对每个测试用例,在区间 $(r_1, r_2)$ 内寻找最大整数 $i$ 满足:
存在正整数 $c$,使得 $i$ 在 $B_1$ 进制下的数字序列与 $i \times c$ 在 $B_2$ 进制下的数字序列**完全相同**(数字顺序和数值完全一致)。
若存在满足条件的 $i$,输出该整数; 若不存在,输出字符串`Non-existent.`
说明/提示
### 样例解释
1. **1040**:
$1040_{10} = (1,0,4,0)_{10}$
$1040_{16} = (1,0,4,0)_{16} = 4160_{10}$
满足 $1040 \times 4 = 4160$
2. **4240**:
$4240_{10} \times 4 = 16960 = 4240_{16}$
3. **9240**:
在 $B_1=11, B_2=14$ 时存在对应 $c$ 满足条件
### 数据范围
- 进制范围:$10 \leq B_1 < B_2 \leq 99$
- 数值范围:$1 \leq r_1 < r_2 \leq 9999$