Home > katas > Multiples of 3 or 5 (6kyu) [JavaScript]
Multiples of 3 or 5 (6kyu) [JavaScript]
Chek kata on Codewars
Description:
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Finish the solution so that it returns the sum of all the multiples of 3 or 5 below the number passed in.
Note: If the number is a multiple of both 3 and 5, only count it once. Also, if a number is negative, return 0(for languages that do have them)
Courtesy of projecteuler.net
Loop
function solution(number){
let counter = 0
for(let i = 3; i < number; i++) {
if(i % 3 === 0 || i % 5 === 0) {
counter += i
}
}
return counter
}
Map + Reduce
function solution(number) {
return number < 3 ? 0 : Array.from({length: number}, (_,i) => i++).map(i => i % 3 === 0 || i % 5 === 0 ? i : 0 ).reduce((acc, cur) => acc + cur, 0)
}
Filter + Reduce
function solution(number) {
return number < 3 ? 0 : [...Array(number).keys()].filter(i => i % 3 === 0 || i % 5 === 0).reduce((acc, cur) => acc + cur, 0)
}
Reduce
function solution(number) {
return number < 3 ? 0 : [...Array(number)].reduce((acc, _, idx) => acc + idx * (!(idx % 3) || !(idx % 5)), 0)
}