1104.Don’t Ask Woman about Her Age(数論)

5998 ワード

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 }