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


 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Ejercicio: factorización de un número, creación de "palabras" [python]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio: factorización de un número, creación de "palabras" [python]  (Leído 7,663 veces)
Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.588


Shrödingerificado


Ver Perfil
Ejercicio: factorización de un número, creación de "palabras" [python]
« en: 21 Julio 2009, 17:25 »

Por cosas de la vida me viene bien tener un algoritmo para hacer la descomposición factorial de un número y lo voy a hacer ahora en python.

Puede ser un ejercicio interesante, es como el típico de hallar los números primos pero ampliándolo con algo más.

Personalmente lo voy a ampliar (más) después a hallar el mínimo número de factores del número original, teniendo de los m factores m+0.5/2 que sean menores de 26 y m/2 menores de 5, para formar palabras. Pero eso ya lo dejo a lo que quiera hacer cada uno.

Dentro de un rato pongo el código, si no me interrumpen.


En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.588


Shrödingerificado


Ver Perfil
Re: Ejercicio: factorización de un número, creación de "palabras" [python]
« Respuesta #1 en: 21 Julio 2009, 20:46 »

Pensándolo mejor, no lo voy a ampliar más, también es un ejercicio interesante, pero es algo más complicado que lo otro y no me merece la pena para lo que quiero hacer. Vamos, que llevo ya un rato para lo otro, en parte por enfocarlo mal, si lo hubiera hecho con backtracking desde el principio ya habría terminado, y hasta aquí el tiempo que quiero dedicar.

Código
  1.  def factorization(k):
  2.    s = 2
  3.    fs = []
  4.    for j in range(s, int(k ** (1/2))+1):
  5.      while (k%j == 0):
  6.        fs.append(j)
  7.        k = k // j
  8.    if (k != 1):
  9.      fs.append(k)
  10.    return fs


« Última modificación: 21 Julio 2009, 21:00 por Ragnarok » En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines