Разбираю очередную задачу на канале с задачами: Задача 2520 - самое маленькое число, которое делится без остатка на все числа от 1 до 10. Какое самое маленькое число делится нацело на все числа от 1 до 20? Решение У автора есть наивное и оптимизированное решения. Наивное рассматривать не будем в силу его наивности (полный перебор). Для оптимизированного автор предлагает следующую стратегию: Будем исходить из факта, что если число делится на какие-то числа, значит оно является их произведением. В таком случае, перемножив все числа от 2 до 20, мы получим число, которое содержит все эти числа внутри себя как множители и значит делится на любое из них. Проблема только в том, что это число не будем минимальным. Чтобы уменьшить его, нужно выкинуть из него те множители, которые повторяются несколько раз. Например: множитель 16 не нужен, потому что уже есть множители 2 и 8. Множитель 20 не нужен, потому что есть 4 и 5, и т.д. Автор кеширует множители в массиве, куда может попасть только число,