1150. 确定进制
暂无测试数据。
题目描述
6*9 = 42 对于十进制来说是错误的,
但是对于 13 进制来说是正确的。
即6(13) * 9(13)=42(13),
而 42(13) = 4*13 + 2*1 = 54(10)。
你的任务是写一段程序读入三个整数 \(p\)、\(q\)和 \(r\),
然后确定一个进制 \(B\) ( \(2 \leq B \leq 16\)) 使得 \(p*q=r\)。
如果 \(B\) 有很多选择,则输出最小的一个。
例如:
p=11, q=11, r=121,
则有 11(3)*11(3)=121(3),
因为 \(11(3)=1*3^1+1*3^0=4(10)\) 和
\(121(3)=1*3^2+2*3^1+1*3^0=16(10)\)。
对于进制 10,有 \(11(10) * 11(10) = 121(10)\)。
这种情况下,应该输出 3。
如果没有合适的进制,则输出 0。
输入
一行,包含三个整数 \(p\)、\(q\)、\(r\),相邻两个整数之间用单个空格隔开。
输出
一个整数:即使得 \(p*q=r\) 成立的最小的B。
如果没有合适的 \(B\),则输出 0。
样例输入
6 9 42
样例输出
13
数据范围限制
\(p\)、\(q\)、\(r\) 的所有位都是数字,并且 \(1 \leq p、q、r \leq 10^6\)。
来源
基础篇练习7.1
信息
- ID
- 1149
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者