1 #include<stdio.h>
2 #include<stdlib.h>
3 char p[32],q[32],r[32];
4 int MinRadix()//找出最低限的进制
5 {
6 int i,minRadix;
7 minRadix=1;
8 for(i=0;p[i];i++)//找出p[i]最大的数
9 if(minRadix<p[i]-'0') minRadix=p[i]-'0';
10 for(i=0;q[i];i++)
11 if(minRadix<q[i]-'0') minRadix=q[i]-'0';
12 for(i=0;r[i];i++)
13 if(minRadix<r[i]-'0') minRadix=r[i]-'0';
14 return minRadix+1;
15 }
16 bool Radix(int radix)//radix进制转化为10进制
17 {
18 int i,P,Q,R;
19 for(P=i=0;p[i];++i)
20 P=P*radix+p[i]-'0';
21 for(Q=i=0;q[i];++i)
22 Q=Q*radix+q[i]-'0';
23 for(R=i=0;r[i];++i)
24 R=R*radix+r[i]-'0';
25 if(P*Q==R) return 1;
26 else return 0;
27 }
28 int main()
29 {
30 int T,i;
31 scanf("%d",&T);
32 while(T--)
33 {
34 scanf("%s%s%s",p,q,r);
35 for(i=MinRadix();i<17;i++)
36 if(Radix(i)) break;
37 printf("%d\n",i==17?0:i);
38 }
39 //system("pause");
40 return 0;
41 }
42
![](http://s5.sinaimg.cn/middle/910bf6654c60a91ef0b04&690)