Utiliza Python para factorizar números enteros positivos en factores primos. Ejemplo: Ingrese 90 e imprima 90=2*3*3*5. ¿Qué debo hacer?
(1) Si este número primo es exactamente igual a n, luego la descomposición del número primo. El proceso está completo, simplemente imprímalo.
(2) Si n<>k, pero n es divisible por k, imprima el valor de k y luego divida el cociente de k entre n para obtener un nuevo entero positivo n.
(3) Si n no es divisible por k, debes usar k+1 como valor de k y repetir el primer paso.
Código fuente del programa:
Ejemplo (Python 2.)
#! /usr/bin/python
# -*- Codificación: UTF-8 -*-
def reduceNum(n):
print '{} = '.format(n),
si no es isinstance(n, int) o n <= 0 :
print '¡Ingrese el número correcto!
exit(0)
elif n en [1] :
imprimir '{}'.format(n)
mientras n no está en [1] : # Recursividad garantizada en bucle
para índice en xrange(2, n + 1):
si n % índice == 0:
n /= índice # n es igual a n/index
si n == 1:
imprimir índice
de lo contrario: # índice debe ser un número primo
imprimir ' {}*'.format(index),
break
reduceNum(90)
reduceNum(100)
Para el ejemplo anterior, la salida es:
90 = 2 * 3 * 3 * 5100 = 2 * 2 * 5 * 5