Скажем, что мы имеем 3 числа N, x и y, которые всегда >=1.
N будет больше, чем x, а y и x будет больше, чем y.
Теперь нам нужно найти сумму всех чисел между 1 и N, которые делятся на x или y.
Я придумал это:
sum = 0;
for(i=1;i<=N;i++)
{
if(i%x || i%y)
sum += i;
}
Есть ли способ лучше найти сумму, избегая цикла for?
Я уже много дней колотил голову, но у меня не было ничего лучшего.
Если значение N имеет верхний предел, мы можем использовать метод поиска для ускорения процесса.
Спасибо всем.
Мне нужно решение на основе C/С++. Есть ли встроенная функция для этого? Или мне нужно закодировать алгоритм?