はまやんはまやんはまやん

hamayanhamayan's blog

Harshad Number [AtCoder Beginner Contest 080 B]

https://beta.atcoder.jp/contests/abc080/tasks/abc080_b

解法

https://beta.atcoder.jp/contests/abc080/submissions/1828747

f(N)を求めよう。
これは10進法で表記した時の各桁の総和であるが、10で割りながら、最小位の桁を足していけばいい。
後は割り切れるか判定してハーシャッド数か確かめる。

int N;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
 
    int fx = 0;
    int x = N;
    while (x) {
        fx += x % 10;
        x /= 10;
    }
 
    if (N % fx == 0) printf("Yes\n");
    else printf("No\n");
}