Kata:Ruby:Tail Recursive Prime Factors

12/05/2009 02:46:48 PM

At the request of a former employer here's a tail recursive version of the prime factors kata in Ruby.


    def generate(n, factors=[])
      return factors if n == 1
      new_factor = (2..n).find {|f| n % f == 0} 
      generate(n / new_factor, factors + [new_factor])
    end