Resolviendo Project Euler con Python
Publicado el 18 de septiembre de 2009 | Categoría/s: Python

A través del blog de Juanjo Conti descubrí Project Euler, una serie de desafíos matemáticos de enunciación sencilla para resolver con computadoras.

Juanjo estuvo resolviendo los primeros problemas, y yo quise hacer mi intento. El primero plantea obtener la suma de todos los multiplos de 3 o de 5 menores a 1000.

Lo resolví con esta pythonica (lo es?) línea:

sum([i for i in range(1000) if (i % 3 == 0 or i % 5==0)])

El resultado es 233168.

Breve explicación

Se basa en el uso de list comprehensions, una de las "joyas de la corona" de las características de Python.

Es una manera de generar listas de una manera concisa, compuesta por una expresión seguida de uno a más for y una condicionalidad al final

La lista [i for i in range(1000) if (i % 3 == 0 or i % 5==0)] se lee así: crear una lista con todos los elementos (expresión i) en el rango de 0 a 999 (for) cuyo resto de dividirlo por 3 o 5 sea 0 (if).

La función builtin sum() hace la sumatoria de esa lista y... listo. ;-)

1 comentario en este artículo

Seguir la vida del sitio
  1. Comentario por JoseCr
    7 de marzo de 2010, 15:24hs
    1

    muy bueno el post... me sirvio para una tara corata graxx

Tu comentario


¿Un mensaje, un comentario?
  • (Para crear párrafos, deja líneas vacías.)

¿Quién eres? (opcional)



NqN/webs :: Desarrollo, Diseño y Hosting de Sitios Web por Martín Gaitán
Neuquén & Córdoba - Argentina - © Año 2004/2009 - Tel (+54) 0351 460·1524 - Celular: (+54) 351 153·308454
Contacto | Pagos | RSS | SPIP | Usa Firefox