| 题目名称 | 2862. 确定进制 |
|---|---|
| 输入输出 | qdjz.in/out |
| 难度等级 | ★ |
| 时间限制 | 1000 ms (1 s) |
| 内存限制 | 512 MiB |
| 测试数据 | 10 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:0, 提交:0, 通过率:0% | |||
| 关于 确定进制 的近10条评论(全部评论) |
|---|
$6\times 9=42$ 对于十进制来说是错误的,但是对于 $13$ 进制来说是正确的, $6_{(13)} \times 9_{(13)} = 42_{(13)}$。
你的任务是写一段程序,读入三个整数 $p,q,r$,然后确定一个进制 $B(2\leq B\leq 20)$ 使得 $p \times q = r$。 如果 $B$ 有很多选择, 输出最小的一个。
例如:$p=11,q=11,r=121$,则有 $11_{(3)}\times 11_{(3)} = 121_{(3)}$, 因为 $11_{(3)} = 1\times 3^1+1\times 3^0 = 4_{(10)}$ 和$121_{(3)} =1\times3^2 +2\times3^1 +1\times3^0 =16_{(10)}$ 。对于10进制,同样有 $11_{(10)} * 11_{(10)} = 121_{(10)}$ 。这种情况下,应该输出 $3$。
一行,包含三个整数$p,q,r(1\leq p,q,r\leq 10^6)$。
一个整数:即使得 $p\times q=r$ 成立的最小的 $B$(输入数据保证$B$的存在)。
6 9 42
13
$k$进制数转换为10进制数的方法叫:按位加权求和。例如:
$(10111)_2=1\times 2^4+0\times 2^3+1\times 2^2+1\times 2^1+1\times 2^0=(23)_{10}$
$(121)_7=1\times 7^2+2\times 7^1+1\times 7^0=(64)_{10}$
$(12C)_{16}=1\times 16^2+2\times 16^1+12\times 16^0=(300)_{10}$