Problem:
Score : 200 points

Problem Statement

Let S(n) denote the sum of the digits in the decimal notation of n.
For example, S(101) = 1 + 0 + 1 = 2.

Given an integer N, determine if S(N) divides N.

Constraints

1 \leq N \leq 10^9

Input

Input is given from Standard Input in the following format:

N

Output

If S(N) divides N, print Yes; if it does not, print No.

Sample Input 1

12

Sample Output 1

Yes

In this input, N=12.
As S(12) = 1 + 2 = 3, S(N) divides N.

Sample Input 2

101

Sample Output 2

No

As S(101) = 1 + 0 + 1 = 2, S(N) does not divide N.

Sample Input 3

999999999

Sample Output 3

Yes

Solution in C (GCC 5.4.1) (judge verdict: Accepted)

 #include<stdio.h>
 #include<string.h>
 int main(void)
 {
     char N[11];
     int i,n=0,S[11],s=0,m=0;

     scanf("%s",N);
     s=strlen(N);

     for(i=0;i<s;i++){
       S[i]=N[i]-'0';
       m+=N[i]-'0';
     }

     if(s==1) n=S[0];
     if(s==2) n=S[0]*10+S[1];
     if(s==3) n=S[0]*100+S[1]+S[2];
     if(s==4) n=S[0]*1000+S[1]*100+S[2]*10+S[3];
     if(s==5) n=S[0]*10000+S[1]*1000+S[2]*100+S[3]*10+S[4];
     if(s==6) n=S[0]*100000+S[1]*10000+S[2]*1000+S[3]*100+S[4]*10+S[5];
     if(s==7){
      n=S[0]*1000000+S[1]*100000+S[2]*10000+S[3]*1000+S[4]*100+S[5]*10+S[6];
     }
     if(s==8){
      n=S[0]*10000000+S[1]*1000000+S[2]*100000+S[3]*10000+S[4]*1000+S[5]*100+S[6]*10+S[7];
     }
     if(s==9){
      n=S[0]*100000000+S[1]*10000000+S[2]*1000000+S[3]*100000+S[4]*10000+S[5]*1000+S[6]*100+S[7]*10+S[8];
     }
     if(s==10){
      n=S[0]*1000000000+S[1]*100000000+S[2]*10000000+S[3]*1000000+S[4]*100000+S[5]*10000+S[6]*1000+S[7]*100+S[8]*10+S[9];
     }

     if(n%m==0) printf("Yes\n");
     else printf("No\n");
   
     return 0;
 }