数论-北大-1152

0 views
Skip to first unread message

china_sjc

unread,
Aug 6, 2008, 5:36:47 AM8/6/08
to 中国矿业大学徐海学院算法课程
#include <stdio.h>
#include <string.h>
inline int translate(char c)
{
int d;
if(c>='0'&&c<='9')d=c-'0';
else if(c>='A'&&c<='Z')d=c-'A'+10;
else if(c>='a'&&c<='z')d=c-'a'+36;
return d;
}

int main()
{
char input[36100],c;
int i,j,min,n,len,num;
while(scanf("%s",&input)==1){
c=input[0];
for(i=1;input[i]!='\0';i++){
if(c<input[i])
c=input[i];
}
len=i;
min=translate(c);min++;
min=(min<2)?2:min;num=0;
for(j=0;j<len;j++)
num+=translate(input[j]);
for(n=min;n<=62;n++){
if(num%(n-1)==0){
printf("%d\n",n);
break;
}
}
if(n==63)printf("such number is impossible!\n");
}
}
Reply all
Reply to author
Forward
0 new messages