curriculum/challenges/english/blocks/rosetta-code-challenges/595668ca4cfe1af2fb9818d4.md
The Harshad or Niven numbers are positive integers ≥ 1 that are divisible by the sum of their digits.
For example, 42 is a Harshad number as 42 is divisible by (4 + 2) without remainder.
Assume that the series is defined as the numbers in increasing order.
Implement a function to generate successive members of the Harshad sequence.
Use it to return an array with ten members of the sequence, starting with first Harshad number greater than n.
isHarshadOrNiven should be a function.
assert(typeof isHarshadOrNiven === 'function');
isHarshadOrNiven(10) should return [12, 18, 20, 21, 24, 27, 30, 36, 40, 42]
assert.deepEqual(isHarshadOrNiven(10), [12, 18, 20, 21, 24, 27, 30, 36, 40, 42]);
isHarshadOrNiven(400) should return [402, 405, 407, 408, 410, 414, 420, 423, 432, 440]
assert.deepEqual(isHarshadOrNiven(400), [402, 405, 407, 408, 410, 414, 420, 423, 432, 440]);
isHarshadOrNiven(1000) should return [1002, 1008, 1010, 1011, 1012, 1014, 1015, 1016, 1017, 1020]
assert.deepEqual(isHarshadOrNiven(1000), [1002, 1008, 1010, 1011, 1012, 1014, 1015, 1016, 1017, 1020]);
function isHarshadOrNiven(n) {
const res = [];
return res;
}
function isHarshadOrNiven(n) {
function isHarshad(num) {
let s = 0;
const nStr = num.toString();
for (let i = 0; i < nStr.length; ++i) {
s += parseInt(nStr.charAt(i), 10);
}
return n % s === 0;
}
const res = [];
let count = 0;
while (count < 10) {
n++;
if (isHarshad(n)) {
count++;
res.push(n);
}
}
return res;
}