Me gustaría saber la mejor manera de enumerar todos los factores enteros de un número, dado un diccionario de sus factores primos y sus exponentes.
Por ejemplo si tenemos {2: 3, 3: 2, 5: 1} (2^3 * 3^2 * 5 = 360)
Entonces podría escribir:
Factorización Python
for i in range(4):
for j in range(3):
for k in range(1):
print 2**i * 3**j * 5**k
Pero aquí Tengo 3 horribles bucles. ¿Es posible abstraer esto en una función dada cualquier factorización como un argumento de objeto de diccionario?
Mi matemática está oxidada, ¿cuál es el principio que le permite derivar todos los factores de los factores primos? –
Eso probablemente se derivaría del teorema fundamental de la aritmética, ya que cualquier factor no primo tiene una factorización prima única que está contenida en la factorización prima del número mayor. – user57368