elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 10:19  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Reto: Números primos en python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Reto: Números primos en python  (Leído 2,854 veces)
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Reto: Números primos en python
« en: 22 Noviembre 2010, 18:52 »

Buenas.

A ver, me he topado con algún reto por la red y me ha dado ganas de poner algo similar.

Es sencillo, crear un script que imprima una lista con los números primos menores que n

¿Donde esta el reto? En que debe de ser en el menor número de caracteres posibles, no importa cuan lento sea mientras sea en pocos caracteres, ni siquiera es necesario mostrar un mensaje para que ingrese datos, así que con el input a secas alcanza :P

Ejemplos:
Código:
10
[2, 3, 5, 7]

30
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

¿Algún aventurero? :P

Saludos

Nota: cuentan caracteres en blanco, y en caso de empate se ve el más rápido


« Última modificación: 22 Noviembre 2010, 18:59 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Karcrack


Desconectado Desconectado

Mensajes: 2.192


Se siente observado ¬¬'


Ver Perfil
Re: Reto: Números primos en python
« Respuesta #1 en: 22 Noviembre 2010, 21:26 »

Buena iniciativa, me guuuuusta :D

Mientras intento hacer uno 100% mio he modificado cositas que he ido encontrando:
Código
print reduce(lambda x,y: reduce(lambda a,b: a and y % b, x, 1) and x+[y] or x, range(2,n + 1), [])
Me ha costado muchisimo comprenderlo al principio... el reduce() es algo inconcebible... el tio al que se le ocurrio debia ir drogado :laugh: :laugh:
Añado:Esta forma es evidentemente menos corta, ya que con dos for's ya queda mas corto, aun asi resulta enrevesadamente interensante :xD


« Última modificación: 22 Noviembre 2010, 22:39 por Karcrack » En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Reto: Números primos en python
« Respuesta #2 en: 23 Noviembre 2010, 00:16 »

Esperaba que fueras tu quien se animara :P
A esa se le pueden quitar espacios innecesarios, ya que como he puesto antes los espacios cuentan, pero aún así tengo una más corta que me estoy guardando ;D
Por cierto, lo que si hay que agregar es un input para poder ingresar el n

Saludos
« Última modificación: 23 Noviembre 2010, 01:13 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Karcrack


Desconectado Desconectado

Mensajes: 2.192


Se siente observado ¬¬'


Ver Perfil
Re: Reto: Números primos en python
« Respuesta #3 en: 23 Noviembre 2010, 12:24 »

Esperaba que fueras tu quien se animara :P
A esa se le pueden quitar espacios innecesarios, ya que como he puesto antes los espacios cuentan, pero aún así tengo una más corta que me estoy guardando ;D
Por cierto, lo que si hay que agregar es un input para poder ingresar el n

Saludos
No te preocupes, que esta tarde intento hacerlo mas corto, ahora estoy en el insitituto y no puedo :laugh:

Añado:
Participo en el reto con estos codigos:
Código
n=range(2,input())
print filter(lambda x:all(x%i or x==i for i in n),n)
70 caracteres
Código
n=range(2,input())
for i in n:n=filter(lambda x:x%i or x==i,n)
print n
68 caracteres

El segundo es mas corto (por 2 caracteres) :D, pero el primero me gusta mas :xD

Por cierto, los saltos de linea cuentan como un caracter? O como dos? Ya que son \r\n...
« Última modificación: 23 Noviembre 2010, 14:14 por Karcrack » En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Reto: Números primos en python
« Respuesta #4 en: 24 Noviembre 2010, 13:23 »

Excelentes!

En realidad yo contaría los saltos de línea como uno, y en ese caso tu primer code tendría 71 y el segundo 70, o simplemente podemos no contarlos :P
Yo también había probado con map, filter, reduce y lambdas, pero opte por usar listas por comprensión ...
Código
print[x for x in range(2,input())if all(x%i for i in range(2,x))]
65! :D

No se me ocurre manera de hacerla más corta, de hecho había visto otra manera de hacerlo , pero ayer a la noche la modifiqué a esta última ;D

Aún así me parece largo, porque mira este reto y los resultados. Basicamente se pide crear un programa para factorizar, para lo cual debes de hallar número primos, y al final del ranking aparece uno que ponen que se aprovecho de un fallo de letra, pero aún así ... 55 caracteres incluido lo de los primos? :huh:

Saludos
« Última modificación: 24 Noviembre 2010, 13:30 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Karcrack


Desconectado Desconectado

Mensajes: 2.192


Se siente observado ¬¬'


Ver Perfil
Re: Reto: Números primos en python
« Respuesta #5 en: 24 Noviembre 2010, 15:21 »

Muy bueno tu codigo :D Yo me empeñe en usar lambda :laugh:, buen trabajo :D

Lastima no poder ver el codigo con el que participan en el desafio ese... 55 me parece poooquisimo, pero como dice ha "hecho trampas" :-\

A ver si se hacen mas retos de este tipo, siempre me gusta llevarlo todo al limite :P
En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Reto: Números primos en python
« Respuesta #6 en: 24 Noviembre 2010, 16:02 »

Si, la segunda edición de la revista esa donde hacen el ejercicio esta demorada, así que estaba por escribir a ver si van a publicar las soluciones :P

Citar
A ver si se hacen mas retos de este tipo, siempre me gusta llevarlo todo al limite

Y a mi, pero pocos se suman (Lord RNA dijo qu elo haría pero creo que se asustó xD) y alguien tiene que ponerlos, estaba viendo de quizás sacar alguno de los que pusiste en VB ;D

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
rsa y numeros primos
Criptografía
sulivan 1 2,872 Último mensaje 11 Octubre 2009, 00:11
por astaroth7
Números Primos
Programación C/C++
alfilblanco 4 1,501 Último mensaje 24 Octubre 2009, 23:34
por baron.power
[Python 2.6] Funcion generadora de Numeros primos (5.761.455 primos en 19 seg)
Scripting
katas 2 3,641 Último mensaje 10 Marzo 2010, 01:50
por Novlucker
[Python] Listas y números primos.
Scripting
Meta 5 2,315 Último mensaje 14 Noviembre 2010, 04:48
por Meta
[Reto Batch] Generador de numeros primos
Scripting
Stakewinner00 4 191 Último mensaje 14 Mayo 2012, 05:14
por Batchiano
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines