Получение наименее общего кратного массива целых чисел в Ruby - программирование
Подтвердить что ты не робот

Получение наименее общего кратного массива целых чисел в Ruby

Я знаю, что в Ruby вы можете использовать метод Integer#lcm, чтобы получить наименьшее общее число из двух чисел. Например:

10.lcm(15)
# => 30

Есть ли эффективный (или встроенный в ядро ​​или stdlib) способ получить наименьший общий кратный всех целых чисел в заданном массиве? Например:

[5, 3, 10, 2, 20].lcm
# => 60
4b9b3361

Ответ 1

Любая операция, которая принимает два операнда, может быть применена итеративно к коллекции, свернув ее. Это Enumerable # вводит/уменьшает в Ruby. Для того, чтобы покрыть пустой корпус, вы передаете в качестве первого аргумента единичного элемента операции (1, в данном случае).

>> [5, 3, 10, 2, 20].reduce(1, :lcm)
=> 60