寻找基数
同一个数会由于采用不同的基数而使得其表现的形式是完全不一样的,在我们的学习中,我们熟悉的基数有10进制、12进制、60进制、2进制、8进制和16进制。比如数据12,如果我们用2进制表示,则它就是1100;如果用3进制表示就是110;如果用8进制表示则是14。我们的编程任务就是与数的进制(也就是基数)有关。 程序中我们会给大家很多个数对(假设每个数对的数用X和Y表示),程序需要解决的问题就是为X和Y各选择一个最小的基数,以使得这两个数在其选择的基数上是一对相等的数。
例如,12和5这个数对,我们可以为12选择基数3,为5选择基数6,这样一来12(base 3)=5(base 6),因为12(base 3)就是10进制数5,而5(base 6)也是10进制数中的5。
输入:
程序的输入是通过文件完成的。
理想中文件的每一行都包含一个数对X和Y,两个数通过一个或多个空格符分割,与X和Y相关联的有效基数值范围为2~36。X和Y的合理数值表示字符包括0—9和A-Z(表示数值10-35),但是要注意处理不合法的数据表示形式。
文件的最后一行用一个数字0表示输入的结束。
样例输入文件(base.in)
12 5
10 A
12 34
123 456
ab&e 123
1 2
10 2
0
输出:
结果应该存放在一个文件中,该文件中的每一行对应为输入文件中相应的那行数对,输出的格式按照下面的示例文件即可。
样例输出文件(base.out)
12 (base 3) = 5 (base 6)
10 (base 10) = A (base 11)
12 (base 17) = 34 (base 5)
123 is not equal to 456 in any base 2..36
ab&e is illegal number expression
1 is not equal to 2 in any base 2..36
10 (base 2) = 2 (base 3)