1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def divNat(n, m, acc = [])
  if m == 1
    p acc << n
    return
  end
  n.downto(0) {|i|
    w = acc[0..-1]
    divNat(n-i,m-1, w << i)
  }
end

divNat(5,3)