elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  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 10,466 veces)
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


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

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 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"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.416


Se siente observado ¬¬'


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

Buena iniciativa, me guuuuusta :D

Mientras intento hacer uno 100% mio he modificado cositas que he ido encontrando:
Código
  1. 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 pm por Karcrack » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


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

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 am por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"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.416


Se siente observado ¬¬'


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

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
  1. n=range(2,input())
  2. print filter(lambda x:all(x%i or x==i for i in n),n)
70 caracteres
Código
  1. n=range(2,input())
  2. for i in n:n=filter(lambda x:x%i or x==i,n)
  3. 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 pm por Karcrack » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


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

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
  1. 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 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"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.416


Se siente observado ¬¬'


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

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
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


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

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
"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
[Python 2.6] Funcion generadora de Numeros primos (5.761.455 primos en 19 seg)
Scripting
katas 2 9,886 Último mensaje 10 Marzo 2010, 01:50 am
por Novlucker
[Python] Listas y números primos.
Scripting
Meta 5 21,277 Último mensaje 14 Noviembre 2010, 04:48 am
por Meta
Sacar numeros de una ecuacion? reto? « 1 2 »
Programación Visual Basic
Edu 12 5,351 Último mensaje 14 Marzo 2011, 16:58 pm
por 79137913
[Python] Optimizar busqueda de primos
Scripting
camaleonh 0 3,187 Último mensaje 28 Febrero 2012, 08:16 am
por camaleonh
[Reto Batch] Generador de numeros primos
Scripting
Stakewinner00 8 8,942 Último mensaje 23 Julio 2012, 02:51 am
por AgnesBlack
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines