Повторяющийся момент, вычисление суммы последовательности от 0 до N с шагом — в функцию.
Сложить ряд с шагом 3, ряд с шагом 5 и вычесть места, где они пересекаются и значения двоятся: в кратных 15 – тоже ряд, с шагом 15.
const sum = number => {
if (number < 0) return 0;
// вспомогательная функция считает сумму ряда с шагом step
const sequenceSum = step => {
const q = Math.floor(number / step);
return q * (q + 1) * step / 2;
}
return sequenceSum(3) + sequenceSum(5) - sequenceSum(3 * 5);
}
sum(18) // 78