一道好题;
#include<bits/stdc++.h>
using namespace std;
long long p, q, r, a[1034], cnt, b[1034], cnt2, cnt3, c[2023];
int th(long long a[], long long b[], long long c[], int i) {//判断部分
int h = 1;
p = q = r = 0;
for (int j = 0; j < cnt; j++) {
p += h * a[j];
if(a[j]>=i)return 0;//注意!!!,进制下的数小于进制!
h *= i;
}
h = 1;
for (int j = 0; j < cnt2; j++) {
q += h * b[j];
if(b[j]>=i)return 0;
h *= i;
}
h = 1;
for (int j = 0; j < cnt3; j++) {
r += h * c[j];
if(c[j]>=i)return 0;
h *= i;
}
if (p * q == r) return 1;
else return 0;
}
int main() {
cin >> p >> q >> r;
while (p > 0) {
a[cnt] = p % 10;
p /= 10;
cnt++;
}
while (q > 0) {
b[cnt2] = q % 10;
q /= 10;
cnt2++;
}
while (r > 0) {
c[cnt3] = r % 10;
r /= 10;
cnt3++;
}//转化数组
for (int i = 2; i <= 16; i++) {
if(th(a,b,c,i)==1){
cout<<i;
return 0;
}
}
cout << 0;
return 0;
}