哈沙德数

如果一个整数能够被其各个数位上的数字之和整除,则称之为 哈沙德数(Harshad number)。给你一个整数 x 。如果 x 是 哈沙德数 ,则返回 x 各个数位上的数字之和,否则,返回 -1 。

  • 输入: x = 18
    输出: 9
    解释:
    x 各个数位上的数字之和为 9 。18 能被 9 整除。因此 18 是哈沙德数,答案是 9 。

  • 输入: x = 23
    输出: -1
    解释:
    x 各个数位上的数字之和为 5 。23 不能被 5 整除。因此 23 不是哈沙德数,答案是 -1 。

1
2
3
4
5
6
7
var sumOfTheDigitsOfHarshadNumber = function(x) {
let s = 0;
for (let v = x; v; v = Math.floor(v / 10)) {
s += v % 10;
}
return x % s ? -1 : s;
};