Autor
|
Tema: Reto: Números primos en python (Leído 10,466 veces)
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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 Ejemplos: 10 [2, 3, 5, 7]
30 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29] ¿Algún aventurero? 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
Mensajes: 2.416
Se siente observado ¬¬'
|
Buena iniciativa, me guuuuusta Mientras intento hacer uno 100% mio he modificado cositas que he ido encontrando: 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 Añado:Esta forma es evidentemente menos corta, ya que con dos for's ya queda mas corto, aun asi resulta enrevesadamente interensante
|
|
« Última modificación: 22 Noviembre 2010, 22:39 pm por Karcrack »
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Esperaba que fueras tu quien se animara 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 Por cierto, lo que si hay que agregar es un input para poder ingresar el nSaludos
|
|
« Ú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
Mensajes: 2.416
Se siente observado ¬¬'
|
Esperaba que fueras tu quien se animara 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 Por cierto, lo que si hay que agregar es un input para poder ingresar el nSaludos No te preocupes, que esta tarde intento hacerlo mas corto, ahora estoy en el insitituto y no puedo Añado:Participo en el reto con estos codigos: n=range(2,input()) print filter(lambda x:all(x%i or x==i for i in n),n)
70 caracteres 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) , pero el primero me gusta mas 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
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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 Yo también había probado con map, filter, reduce y lambdas, pero opte por usar listas por comprensión ... print[x for x in range(2,input())if all(x%i for i in range(2,x))]
65! 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 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? 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
Mensajes: 2.416
Se siente observado ¬¬'
|
Muy bueno tu codigo Yo me empeñe en usar lambda , buen trabajo 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
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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 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 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
|
|
|
|
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
|
10 Marzo 2010, 01:50 am
por Novlucker
|
|
|
[Python] Listas y números primos.
Scripting
|
Meta
|
5
|
21,277
|
14 Noviembre 2010, 04:48 am
por Meta
|
|
|
Sacar numeros de una ecuacion? reto?
« 1 2 »
Programación Visual Basic
|
Edu
|
12
|
5,351
|
14 Marzo 2011, 16:58 pm
por 79137913
|
|
|
[Python] Optimizar busqueda de primos
Scripting
|
camaleonh
|
0
|
3,187
|
28 Febrero 2012, 08:16 am
por camaleonh
|
|
|
[Reto Batch] Generador de numeros primos
Scripting
|
Stakewinner00
|
8
|
8,942
|
23 Julio 2012, 02:51 am
por AgnesBlack
|
|