Problema
Ver original (inglês)Considere inteiros positivos estritamente menores que o limite. Inclua um valor se ele for divisível por pelo menos um fator diferente de zero. Cada valor incluído deve ser contado apenas uma vez, mesmo que seja divisível por vários fatores. Ignore fatores iguais a zero. Os fatores [3, 5] resultam no conhecido problema dos múltiplos de 3 ou 5.
Implemente sum_of_multiples(limit, factors).
Entrada
limit: O limite superior exclusivo.
factors: Os fatores cujos múltiplos são elegíveis.
Saída
Retorne a soma dos inteiros positivos distintos elegíveis.
Restrições
0 ≤ limit ≤ 100.000. Pode haver de 0 a 20 fatores, cada um entre 0 e 100.000. Fatores duplicados são permitidos.
Exemplos
Entrada:
limit = 12
factors = [3, 5]
Saída esperada:
expected = 33
Entrada:
long long limit = 12;
std::vector<long long> factors = {3, 5};
Saída esperada:
long long expected = 33;
Entrada:
long limit = 12;
long[] factors = new long[] {3, 5};
Saída esperada:
long expected = 33;
Explicação
Os valores incluídos são 3, 5, 6, 9 e 10. A soma deles é 33.
Entrada:
limit = 10
factors = [2, 4]
Saída esperada:
expected = 20
Entrada:
long long limit = 10;
std::vector<long long> factors = {2, 4};
Saída esperada:
long long expected = 20;
Entrada:
long limit = 10;
long[] factors = new long[] {2, 4};
Saída esperada:
long expected = 20;
Explicação
Inclua 2, 4, 6 e 8. Os valores 4 e 8 são contados apenas uma vez, mesmo sendo múltiplos de ambos os fatores.
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.