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++14 (GCC 5.4.1) (judge verdict: Accepted)

#include<iostream>
#include<string>
#include<algorithm>
    using namespace std;


    int main(){
        int n, s;
        cin >> n;
        int a = n / 1000000000;
        int b = (n - a * 100000000) / 100000000;
        int c = (n - a * 1000000000 - b * 100000000) / 10000000;
        int d = (n - a * 1000000000 - b * 100000000 - c * 10000000) / 1000000;
        int e = (n - a * 1000000000 - b * 100000000 - c * 10000000 - d * 1000000) / 100000;
        int f = (n - a * 1000000000 - b * 100000000 - c * 10000000 - d * 1000000 - e * 100000) / 10000;
        int g = (n - a * 1000000000 - b * 100000000 - c * 10000000 - d * 1000000 - e * 100000 - f * 10000) / 1000;
        int h = (n - a * 1000000000 - b * 100000000 - c * 10000000 - d * 1000000 - e * 100000 - f * 10000 - g * 1000) / 100;
        int i = (n - a * 1000000000 - b * 100000000 - c * 10000000 - d * 1000000 - e * 100000 - f * 10000 - g * 1000 - h * 100) / 10;
        int j = n % 10;
        s = a + b + c + d + e + f + g + h + i + j;
            

        if (n%s == 0)cout << "Yes" << endl;
        else cout << "No" << endl;
        return 0;
    }