void process() { unsigned long long v1[100],v2[100]; long a,b,i,j; a=minbase(n1); b=minbase(n2); for(i=a;i<=36;i++) { v1[i]=todec(n1,i); } for(j=b;j<=36;j++) { v2[j]=todec(n2,j); } for(i=a;i<=36;i++) for(j=b;j<=36;j++) { if(v1[i]==v2[j]) { printf("%s (base %ld) = %s (base %ld)\n",n1,i,n2,j); return; } } printf("%s is not equal to %s in any base 2..36\n",n1,n2); }
int main() { int i, j; char num[10000]; i = 0; j = '0'; while ( j <= '9' ) compare[j++] = i++; j = 'A'; while ( j <= 'Z' ) compare[j++] = i++; j = 'a'; while ( j <= 'z' ) compare[j++] = i++; while(true) { scanf(" %[^0-9A-z]", &num); if(scanf("%s", &num) <= 0) break; j = minbase(num); while(j <= 62 && !calculate(num, j) ) ++j; if ( j <= 62) printf("%d\n", j); else puts("such number is impossible!"); } return 0; }