Все задачи
Легко Решено: 0 Процент решений: 0%

Сумма кратных

Сложите значения ниже предела, делящиеся на любой из заданных множителей.

Рассмотрите положительные целые числа строго меньше предела. Включайте значение, если оно делится хотя бы на один ненулевой множитель. Каждое включённое значение учитывается только один раз, даже если оно делится на несколько множителей. Нулевые множители игнорируются. Множители [3, 5] дают знакомую задачу о кратных 3 или 5.

Реализуйте функцию sum_of_multiples(limit, factors).

Входные данные

limit: Не включаемая верхняя граница.

factors: Множители, чьи кратные учитываются.

Выходные данные

Верните сумму различных подходящих положительных целых чисел.

Ограничения

0 ≤ limit ≤ 100 000. Множителей может быть от 0 до 20, каждый из них — от 0 до 100 000. Допускаются повторяющиеся множители.

Примеры

Пример 1
Ввод:
limit = 12
factors = [3, 5]

Ожидаемый вывод:
expected = 33
Ввод:
long long limit = 12;
std::vector<long long> factors = {3, 5};

Ожидаемый вывод:
long long expected = 33;
Ввод:
long limit = 12;
long[] factors = new long[] {3, 5};

Ожидаемый вывод:
long expected = 33;

Пояснение

Включённые значения: 3, 5, 6, 9 и 10. Их сумма равна 33.

Пример 2
Ввод:
limit = 10
factors = [2, 4]

Ожидаемый вывод:
expected = 20
Ввод:
long long limit = 10;
std::vector<long long> factors = {2, 4};

Ожидаемый вывод:
long long expected = 20;
Ввод:
long limit = 10;
long[] factors = new long[] {2, 4};

Ожидаемый вывод:
long expected = 20;

Пояснение

Включите 2, 4, 6 и 8. Значения 4 и 8 учитываются только один раз, несмотря на то, что подходят под оба множителя.

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.