#!/usr/bin/ruby

#
## https://rosettacode.org/wiki/Factors_of_an_integer
#

func factors(n) {
  gather {
    { |d|
        take(d, n//d) if d.divides(n)
    } << 1..n.isqrt
  }.sort.uniq
}
 
for n [53, 64, 32766] {
    say "factors(#{n}): #{factors(n)}"
}