zoj1154 Niven Numbers,该怎么解决

zoj1154 Niven Numbers
Niven Numbers[size=18px][/size]
A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value.

Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not.


This problem contains multiple test cases!

The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.

The output format consists of N output blocks. There is a blank line between output blocks.


Input

You will be given a number of test cases. Each line of input contains the base b, followed by a string of digits representing a positive integer in that base. There are no leading zeroes. The input is terminated by a line consisting of 0 alone.


Output

For each case, print "yes" on a line if the given number is a Niven number, and "no" otherwise.


Sample Input

1

10 111
2 110
10 123
6 1000
8 2314
0


Sample Output

yes
yes
no
yes
no



#include"stdio.h"
#include"string.h"
int main()
{
char digits[20];
int base,n,len,vale,sum,i;
scanf("%d",&n);
while(n--)
{
while(1)
{
len=0;vale=0;sum=0;
scanf("%d",&base);
if(base==0)
break;
scanf("%s",digits);
len=strlen(digits);
for( i=0;i<len;i++)
{
vale=vale*base+(digits[i]-'0');
sum+=digits[i]-'0';
}
if(vale%sum==0)
printf("yes\n");
else
printf("no\n");
}
if(n)
printf("\n");
}
return 0;
}


为什么会超时、、为什么???

------解决方案--------------------
数组小了 改成100可以通过