Python - Múltiplos

 
Vista:

Múltiplos

Publicado por Gonzalo (1 intervención) el 17/05/2019 01:11:34
Hola soy un novato en lo de programación. El problema que tengo es que intento hacer el reto de sumar todos los múltiplos de 3 y 5 menores de 1000, eso lo logré, pero me atoré cuando me di cuenta que la respuesta correcta es sumar todos los múltiplos pero no los comunes; 3 y 5 tiene como primer múltiplo común al 15, bueno cuando llego a ese número quiero que Python solo sume una vez al resultado final. O sea que añada solo una vez el resultado del múltiplo común al resultado final, pero no se como hacerlo. Alguien me puede ayudar? gracias desde ya.
Captura-de-pantalla-15
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 452
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Múltiplos

Publicado por Daniel (105 intervenciones) el 17/05/2019 08:49:08
Hola,

Con tu enfoque haces dos cosas mal. En el bucle while hay que sumar antes de incrementar el valor, sino no sumas 3 y 5. Por otro lado, tienes que guardar en un vector los valores usados para evitar que se repitan. Una posible solución es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
n1 = 3
n2 = 5
resultado = []
 
while n1 <= 1000:
    resultado.append(n1)
    n1 += 3
 
while n2 <= 1000:
    if not n2 in resultado:
        resultado.append(n2)
    n2 += 5
 
print(sum(resultado))

Aunque creo que es más sencillo hace un bucle for y comprobar cada vez si el valor es divisible o no por 3 o 5.

1
2
3
4
5
6
7
resultado = 0
 
for i in range(1, 1001):
    if i % 3 ==0 or i % 5 == 0:
        resultado += i
 
print(resultado)

Saludos,
Daniel Rodríguez.
Analytics Lane
Python en Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar