Ответ: Данный код делает даже больше — подсчитывает сколькими способами можно перевести начальное число в конечное, и как именно.  Формат вывода подогнать не сложно# Код на ruby 2.2.3p173def f0(number, log) #  n = 10 * number + 1  log += » + 1 »  log += «[» + n.to_s + «] »  return [n, log]enddef f1(number, log) #  n = 2 * number  log += » * 2 »  log += «[» + n.to_s + «] »  return [n, log]enddef f2(number, log) #  n = number + 4  log += » + 4 »  log += «[» + n.to_s + «] »  return [n, log]endstart_num = 14 # начальное числоend_num = 28 # конечное числоmax_steps = end_numop_numbers = 2count = 0for steps in 1..max_steps  for i in 0..op_numbers**steps-1      s = («000000000000000000000000000000» + i.to_s(op_numbers))[-steps..-1]      num = start_num      log = start_num.to_s      for k in 0..s.size — 1          num, log = f0(num, log) if s[k] == «0»          num, log = f1(num, log) if s[k] == «1»          # num, log = f2(num, log) if s[k] == «2»          break if num > end_num      end      # p [num, log, s, steps, i]      if num == end_num          log += » = » + end_num.to_s          count += 1          p log      end  endendp count