a*b^n(mod(b-1) =a(mod(b-1)
http://acm.timus.ru/problem.aspx?space=1&num=1104
1 #include <stdio.h> 2 #include <string.h> 3 4 char str[1000000 + 10]; 5 6 int CharToInt(char c) 7 { 8 if(c>='0' && c<='9') 9 return c - '0'; 10 return c - 'A' + 10; 11 } 12 int main() 13 { 14 scanf("%s",str); 15 int i,n = strlen(str); 16 int sum = 0; 17 char ch = ' '; 18 for(i=0; i<n; ++i) 19 { 20 if(str[i] > ch) ch = str[i]; 21 sum += CharToInt(str[i]); 22 } 23 if(ch <='9') i = ch - '0'; 24 else i = ch -'A' + 10; 25 if(i+1<2) i = 2; 26 else i++; 27 for(;i<=36; ++i) 28 if(sum % (i-1) == 0) 29 { 30 31 break; 32 } 33 if(i<=36) 34 printf("%d ",i); 35 else 36 puts("No solution."); 37 }