A Tau number is a positive integer divisible by the count of its positive divisors.



Task
Show the first   100   Tau numbers.
The numbers shall be generated during run-time (i.e. the code may not contain string literals, sets/arrays of integers, or alike).



Related task
  Tau function


/* Generate a table of the amount of divisors for each number */
proc nonrec div_count([*]word divs) void:
    word max, i, j;
    max := dim(divs,1)-1;
    divs[0] := 0;
    for i from 1 upto max do divs[i] := 1 od;
    for i from 2 upto max do
        for j from i by i upto max do
            divs[j] := divs[j] + 1
        od
    od
corp
 
/* Find Tau numbers */
proc nonrec main() void:
    [1100]word divs;
    word n, seen;
 
    div_count(divs);
    seen := 0;
    n := 0;
 
    while n := n + 1; seen < 100 do
        if n % divs[n] = 0 then
            seen := seen + 1;
            write(n:5);
            if seen % 10 = 0 then writeln() fi
        fi
    od
corp