http://acm.pku.edu.cn/JudgeOnline/problem?id=1152
Код:
#include <stdio.h> #include <string.h> char a[30000]; int main() { int i,len,f,flag; __int64 sum; while( scanf("%s",a)!=EOF ) { len=strlen(a); sum=0; f=1; for(i=0;i<len;i++) { if( a[i]>='0' && a[i]<='9' ) { sum=sum+(a[i]-'0'); if( a[i]-'0'>f ) f=a[i]-'0'; } else if( a[i]>='A' && a[i]<='Z' ) { sum=sum+(a[i]-55); if( a[i]-55>f ) f=a[i]-55; } else { sum=sum+(a[i]-61); if( a[i]-61>f ) f=a[i]-61; } } flag=1; for(i=2;i<=62;i++) { if( sum%(i-1)==0 && i>f ) { flag=0; printf("%d\n",i); break; } } if( flag ) printf("such number is impossible!\n"); } return 0; }