Proyecto Euler: Descripción y problema 1

Hace ya un par de semanas vi a varios colegas de España planeando por twitter un juego de esos que tanto nos gustan, se trata del proyecto Euler, este consiste en avanzar en una carrea para resolver varios y muy divertidos juegos matemáticos con un lenguaje de programación, por ejemplo, el buen Eduard Tomas se ha lanzado por Scala, Juanma ha elegido Clojure y yo (que quería C# pero ya se lo había pedido Quique) volví a mis inicios con Python.

Cuando comencé con Python tenía 11 años y escribía pequeños algoritmos y la verdad que resulta realmente fácil de aprender y en mi opinión ofrece una sintaxis muy rica y muy funcional, así que me arriesgaré a hacer el upgrade a Python 3.3, aprender que tiene de nuevo y lanzarme a terminar esta carrera con este lenguaje.

Todos los que están “jugando” están dejando el código en el blog, y los que podamos hacer alarde de códigos realmente pequeños hasta en un tweet 😛

Ejercicio 1:

El primer problema del Proyecto Euler dice:

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.

Mi solución en Python es:

sum(range(0, 1000, 3)) + sum(range(0, 1000, 5))

Lo que hace el código es realmente sencillo, hace uso de range(start, stop, step) [step es un parámetro opcional e indica de cuanto en cuanto debe aumentar] y sum(), básicamente crea una colección que luego suma a través de la función SUM y sumo los resultados de los dos sum range.

Update:

Juanma me hizo caer en cuenta de un error por medio de un tweet, el ejercicio requiere de la operación de unión, teniéndolo presente puedo escribir algo como:

sum(set(range(0, 1000, 3)).union(range(0, 1000, 5)))

Aquí hago uso de un objeto set que empleo para poder usar la función unión y realizar la suma de los elementos.

Como ando tan ocupado, le sacaré tiempo en las noches como para distraerme un poco.

Si conocen mas formas y mas optimas de realizarlo no duden en comentar 🙂

 

Hasta el próximo post

Anuncios
Proyecto Euler: Descripción y problema 1

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s