O aluno deverá criar uma função que informará a soma de todos os múltiplos de 3 ou 5 menores
que determinado número. Essa função deverá ser criada dentro da tag “script” de um arquivo
HTML.
Boa tarde, @katlin06
Espero que ajude:
<html>
<script>
function sumMultiplesOf3or5(n) {
let sum = 0;
for (let i = 0; i <= n; i++) {
if (i % 3 === 0 || i % 5 === 0) {
sum += i;
}
}
return sum;
}
</script>
</html>
1 curtida
Obrigada .
Sei que é um exercício e “provavelmente querem” que vc use for
e if
, como foi feito acima.
Mas só como curiosidade, tem fórmula pra isso, nem precisa de loop:
// soma todos os múltiplos de x (de zero até n)
function somaMultiplos(x, n) {
var y = Math.floor((n - 1) / x);
return x * Math.floor((y * (y + 1)) / 2);
}
function somaMultiplos3ou5(n) {
// soma os múltiplos de 3 e de 5, mas tem que descontar os múltiplos de 15
// porque esses são múltiplos de 3 e 5 ao mesmo tempo, então eles foram "somados duas vezes"
return somaMultiplos(3, n) + somaMultiplos(5, n) - somaMultiplos(15, n);
}
console.log(somaMultiplos3ou5(1000)); // 233168
Fazendo um teste simples, isso é muito mais rápido que o loop. Claro que para poucos valores pequenos a diferença será insignificante, mas enfim, era só curiosidade mesmo…