volver

Multiples of 3 or 5

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.

Find the sum of all the multiples of 3 or 5 below 1000.


Este problema se puede resolver fácilmente usando las fórmulas de suma de los primeros n números naturales:

S(n)=n(n+1)2=1+2++n

Por lo tanto, los multiplos de 3 serían:

3+6++999=3(1+2++333)=3S(333)

Los de 5:

5S(200)

Con esto estaríamos sumando doblemente los multiplos de 3 y 5, por lo que los tenemos que restar:

15S(66)

En general para los multiplos de 3 o 5 por debajo de n, tenemos:

3S(n/3)+5S(n/5)15S(n/15)

En python:

n=1000

S = lambda n: n*(n+1)//2

3*S(int(n/3)) + 5*S(int(n/5)) - 15*S(int(n/15))