= Учитывая число (как целое число), извлеките цифру из массива, затем выполните обратное:
number = 263
ary = number.digits.reverse #=> [2, 6, 3]
Теперь map от 1 до длины массива с объектом на each_cons , чтобы получить массив, содержащий продукты
products = ary.length.times.map.with_object([]) { |n, a| a.concat ary.each_cons(n+1).map { |e| e.reduce(&:*) } }
#=> [2, 6, 3, 12, 18, 36]
Наконец, проверьте, содержат ли продукты дубликаты, например:
products.size == products.uniq.size