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