//题目简介:本题就是要求一个n进制数r, 能最大整除r的(n-1) 的n,,,,值得注意的是在求r时要注意r在各个位上的分量的最大值,因为n进制中的最大值就是n-1,
//另外值得注意的是 输入有32k 所以数组最少要 32 * 1024
1 #include"cstdio"
2 #include"cstring"
3 using namespace std;
4 char str[35000];
5 int main(){
6 while(scanf("%s",str)!=EOF){
7 int len = strlen(str);
8 int sum = 0;
9 int s;
10 int nn = -10;
11 for(int i=0;i<len;i++){
12 if(str[i]>='0'&&str[i]<='9'){
13 s = str[i]-'0';
14 }
15 else if(str[i]>='A'&&str[i]<='Z'){
16 s = str[i]-'A'+10;
17 }
18 else if(str[i]>='a'&&str[i]<='z'){
19 s= str[i]-'a'+36;
20 }
21 if(s>nn)//最大的数
22 nn = s;
23
24 sum += s;
25 }
26 int min;
27 int j;
28 for(j=2;j<=62;j++){
29 if(sum%(j-1)==0&&nn<j){//最大的数,必须小于进制数
30 min = j;
31 break;
32 }
33 }
34 if(j<=62)//此处必须是j 因为 min 有可能没有值
35 printf("%d\n",min);
36 else
37 printf("such number is impossible!\n");
38 }
39 return 0;
40 }