comments | difficulty | edit_url | rating | source | tags | |
---|---|---|---|---|---|---|
true |
Easy |
1100 |
Weekly Contest 391 Q1 |
|
An integer divisible by the sum of its digits is said to be a Harshad number. You are given an integer x
. Return the sum of the digits of x
if x
is a Harshad number, otherwise, return -1
.
Example 1:
Input: x = 18
Output: 9
Explanation:
The sum of digits of x
is 9
. 18
is divisible by 9
. So 18
is a Harshad number and the answer is 9
.
Example 2:
Input: x = 23
Output: -1
Explanation:
The sum of digits of x
is 5
. 23
is not divisible by 5
. So 23
is not a Harshad number and the answer is -1
.
Constraints:
1 <= x <= 100
We can calculate the sum of the digits of
The time complexity is
class Solution:
def sumOfTheDigitsOfHarshadNumber(self, x: int) -> int:
s, y = 0, x
while y:
s += y % 10
y //= 10
return s if x % s == 0 else -1
class Solution {
public int sumOfTheDigitsOfHarshadNumber(int x) {
int s = 0;
for (int y = x; y > 0; y /= 10) {
s += y % 10;
}
return x % s == 0 ? s : -1;
}
}
class Solution {
public:
int sumOfTheDigitsOfHarshadNumber(int x) {
int s = 0;
for (int y = x; y > 0; y /= 10) {
s += y % 10;
}
return x % s == 0 ? s : -1;
}
};
func sumOfTheDigitsOfHarshadNumber(x int) int {
s := 0
for y := x; y > 0; y /= 10 {
s += y % 10
}
if x%s == 0 {
return s
}
return -1
}
function sumOfTheDigitsOfHarshadNumber(x: number): number {
let s = 0;
for (let y = x; y; y = Math.floor(y / 10)) {
s += y % 10;
}
return x % s === 0 ? s : -1;
}