Los múltiplos de 3 son 3,6,9,12,15,18,21,24,27,30,....
Los múltiplos de 5 son 5,10,15,20,25,30,35,40,45,....
La intersección de estas dos secuencias es 15,30,45,...
La suma de los primeros números 1+2+3+4+...+n es n(n+1)/2.
La suma de los primeros múltiplos de k, digamos k+2k+3k+4k+...+nk debe ser kn(n+1)/2.
Ahora solo tienes que unir estos ingredientes para resolver el problema.
Dado que se nos pide buscar los números por debajo de 1000, observaremos los números hasta el número 999.
Para encontrar n, utiliza 999/3 = 333 + resto, 999/5 = 199 + resto, 999/15 = 66 + resto, usando a*(m*(m+1)/2) , donde m=n/a. aquí a es 3 o 5 o 15, y n es 999 o 1000 pero 999 es el mejor, y luego suma los múltiplos de 3: $3((333)*(333+1)/2) = 166833$ más los múltiplos de 5: $5((199)*(199+1)/2) = 99500$; y resta los múltiplos de 15 $15((66)+(66+1)/2 )= 33165$ para obtener 233168.
1 votos
@J.M.: ¡Título mucho mejor, gracias!
1 votos
@AD: A veces simple es hermoso. ;)
19 votos
Esta es en realidad el problema número 1 de Project Euler y puede resolverse de manera eficiente utilizando inclusión mutua-exclusión.
0 votos
Este es el lema del sello postal! Todo número mayor que 7 se puede expresar como $3x+5y$ con $x,y>0$ crazyproject.wordpress.com/2010/10/22/…