Ejercicio: factorización de un número, creación de "palabras" [python]

Iniciado por Ragnarok, 21 Julio 2009, 17:25 PM

0 Miembros y 1 Visitante están viendo este tema.

Ragnarok

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.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

Ragnarok

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 (python) [Seleccionar]
 def factorization(k):
   s = 2
   fs = []
   for j in range(s, int(k ** (1/2))+1):
     while (k%j == 0):
       fs.append(j)
       k = k // j
   if (k != 1):
     fs.append(k)
   return fs
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones