freeCodeCamp Challenge Guide: Problem 1: Multiples of 3 and 5

Problem 1: Multiples of 3 and 5


Problem Explanation

  • We can find if a number is divisble by another number with the help of % modulo operator.
  • num1 % num2 returns 0 if there’s no remainder while doing num1/num2.
  • Starting from i = 3 because that’s the first number that’s divisble by 3 or 5, we loop through till the number provided.
  • If the number is divisible either by 3 or 5, we add that to the variable sum and finally return it.

Solutions

Solution 1 (Click to Show/Hide)
function multiplesOf3and5(number) {
  let sum = 0,
    i = 3;
  while (i < number) {
    if (i % 3 == 0 || i % 5 == 0) sum += i;
    i++;
  }
  return sum;
}

Relevant Links

Solution 2 (Click to Show/Hide)
function multiplesOf3and5(number) {
  // sum of multiples of 3
  const numMultOf3 = Math.floor((number - 1) / 3, 10);
  const sum3 = (numMultOf3 * (numMultOf3 + 1) / 2) * 3;

  // sum of multiples of 5
  const numMultOf5 = Math.floor((number - 1) / 5, 10);
  const sum5 = (numMultOf5 * (numMultOf5 + 1) / 2) * 5;

  // sum of multiples of 15 (both 3 and 5)
  // we need to subtract these because they are added twice
  const numMultOf15 = Math.floor((number - 1) / 15, 10);
  const sum15 = (numMultOf15 * (numMultOf15 + 1) / 2) * 15;

  return sum3 + sum5 - sum15;
}
3 Likes