Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

viernes, 22 de febrero de 2013

Algoritmo para obtener números primos de una forma funcional

Todo empezó cuando me puse a aprender Python (debido a que este curso requiere programar en ese lenguaje) utilizando Python Tools for Visual Studio. Primero debe bajarse e instalarse el Interpreter y, si no se tiene el Visual Studio, o se tiene la versión Express, hay que instalar The Visual Studio 2010 Shell Redistributable Package, y al final instalar Python Tools. Como resultado, tenemos un Python Express :D

Buscando tutoriales. hallé que en esta web proponían el siguiente método para obtener números primos (llamado "El Colador de Eratósthenes", no es el método más eficiente):

nums = range(2, 50)
for i in range(2, 8):
     nums = filter(lambda x: x == i or x % i, nums)


Luego el autor dice: "No sé de algún lenguaje que pueda hacer lo mismo con sus características propias de una forma tan compacta y legible como en Python (excepto para lenguajes funcionales)".

¡Sorpresa! En C# sí se puede:

int[] nums = Enumerable.Range(2, 48).ToArray();
for (int i = 2; i < 8; i++)
      nums = nums.Where(c => c == i || c % i != 0).ToArray();


Sólo hay que importar los espacios de nombres System y System.Linq.
:D

2 comentarios:

Jersson dijo...

Hola!
En coursera hay un curso de python, muy bueno!

Saludos.

Yelinna Pull1t1 dijo...

Hola Jersson!

Es un honor recibir un comentario tuyo, hallé tu blog rebuscando en Geeks.ms

Gracias por el dato, no conocía https://www.coursera.org/

(debí estudiar un poco de Python antes de empezar el curso en EDX, mis scripts sueltan errores que dan miedo y ya me está yendo mal con la primera práctica)
:(