Título: Projecto Euler problema 12 Publicado por: lDanny en 7 Octubre 2010, 12:51 pm Hola, bueno estoy comenzando en python y vi estos problemas que tienen en Projecto Euler, la verdad que etsan muy bien, bueno el problema 12 que es este
Citar La secuencia de los numeros del triangulo se genera mediante la adicion de los numeros naturales. El codigo lo tengo pero no es optimo demora mucho de hecho todavía no me sale cual es el numero con mas de 500 divisores, pero me sale el de 400 ;-)Asi que el 7mo numero triangulo seria 1+2+3+4+5+6+7=28.Los 10 primeros terminos serian: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55,..... Vamos a enumerar los factores de los números triangulo siete primeros: 1: 1 3 : 1, 3 6 : 1, 2, 3 ,6 10 : 1, 2, 5, 10 15 : 1, 3, 5, 15 21 : 1, 3, 7, 21 28 : 1, 2, 4, 7, 14 ,28 Podemos ver que el 28 es el numero primer triangulo de tener mas de cinco divisores. ¿Cual es el valor del numero de primer triangulo de tener mas de 500 divisores? Es por eso que les digo si pueden resolverlo y que termine en un tiempo aceptable (el mio mas de 30 minutos y no lo resuelve xD) a poder ser en python, aunque pueden ponerlo en cualquier lenguaje. Gracias. Título: Re: Projecto Euler problema 12 Publicado por: lDanny en 7 Octubre 2010, 12:53 pm Bueno para que se animen pongo mi codigo, recien empiezo en pyhton asi que si ven algo que podria hacerse mejor, quitar lineas de codigo que sobran me avisan.
Código
Título: Re: Projecto Euler problema 12 Publicado por: Novlucker en 7 Octubre 2010, 14:01 pm Buenas
Tengo esto ... Código
En el ejercicio no pide que se impriman los divisores por lo cual no lo agrego, de modo de ahorrarme unos pocos recursos :P Cronometrando en un Core2Duo E7500 2.93ghz lleva unos 5,2 segundos de media para encontrar el de los 501 divisores :P Saludos Saludos Título: Re: Projecto Euler problema 12 Publicado por: lDanny en 7 Octubre 2010, 16:15 pm Novlucker gracias por responder, pero creo que mi codigo es mas rapido xDDDDDD(suerte de principiante jejeje).
En mi ordenador el tuyo lo hace en en 33s y el mio en 21s jejeje. Bueno mi error era que yo no ponia como condicion de parada que fuera mayor a 500 divisores, lo que hacia era que parara cuando exista un numero con 501 divisores exactos :-[, bueno cambiado esto va bien y lo hace en 21s, pero supongo que se podra hacer mas rapido. Puedo seguir poniendo en este post ejercicios del projecto euler?. Gracias Aqui el code para que lo comprueben. Código
Título: Re: Projecto Euler problema 12 Publicado por: Novlucker en 7 Octubre 2010, 16:23 pm Jaja :xD, es que de hecho no me moleste en intentar hacerlo más rápido, simplemente vi que ponías que tu code demoraba media hora, así que cuando vi que este eran 5 segundos no miré más, no tenía tanto tiempo como para quemarme la cabeza con el algoritmo :xD
Excelente entonces si ahora quedo bien :D Saludos Título: Re: Projecto Euler problema 12 Publicado por: [L]ord [R]NA en 16 Octubre 2010, 04:33 am Yo tengo uno con el cual participe en ese mismo problema:
Código
|