11/13/2009 10:48:31 PM
It took me a fair bit of refactoring after I got the last test passing (generate 10 ) to get it this tight, but I like it.
def generate(n)
return [] if n == 1
factor = (2..n).find {|x| n % x == 0}
[factor] + generate(n / factor)
end