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.



Task

The task is to create a function/method/procedure to generate successive members of the Harshad sequence.

Use it to:

   list the first 20 members of the sequence,   and
   list the first Harshad number greater than 1000.


Show your output here.



Related task
   Increasing gaps between consecutive Niven numbers


See also
    OEIS: A005349


 
sub sumDigits(n)
    if n < 0 then return 0 : endif
    local sum
    while n > 0
        sum = sum + mod(n, 10)
        n = int(n / 10)
    wend
    return sum
end sub
 
sub isHarshad(n)
    return mod(n, sumDigits(n)) = 0
end sub
 
print "Los primeros 20 numeros de Harshad o Niven son:"
contar = 0
i = 1
 
repeat
    if isHarshad(i) then
        print i, " ",
        contar = contar + 1
    end if
    i = i + 1
until contar = 20
 
print : print
print "El primero de esos numeros por encima de 1000 es:"
i = 1001
 
do  
    if isHarshad(i) then 
        print i, " "
        break
    end if
    i = i + 1
loop
print
end
 