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


require 'prime'
 
taus = Enumerator.new do |y|
  (1..).each do |n|
    num_divisors = n.prime_division.inject(1){|prod, n| prod *= n[1] + 1 }
    y << n if n % num_divisors == 0
  end
end
 
p taus.take(100)
 