Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: Ragnarok en 21 Julio 2009, 17:25 pm



Título: Ejercicio: factorización de un número, creación de "palabras" [python]
Publicado por: Ragnarok en 21 Julio 2009, 17:25 pm
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.


Título: Re: Ejercicio: factorización de un número, creación de "palabras" [python]
Publicado por: Ragnarok en 21 Julio 2009, 20:46 pm
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