Obtener el factorial de un número con Python


Obtener el factorial de un numero con python

[MicroPost] En este micro articulo aprenderemos como obtener el factorial de un número dado en python, puedes encontrar el código funcional al final en nuestro repositorio de Github.

Que es el factorial

El factorial de un entero positivo n, el factorial de n o n factorial se define en principio como el producto de todos los números enteros positivos desde 1 (es decir, los números naturales) hasta n (definición wikipedia).

Algoritmo para factorial

El siguiente método nos permite obtener el factorial de un número dado.-

1
2
3
4
5
6
7
8
9
10
11
def factorial(self, n):
    '''
    Obtenemos el factorial del numero dad0
    '''

    res = 1 # almacenamos el resultado

    for i in range(1, n + 1):
        res = res * i

    return res

El funcionamiento del algoritmo es bastante simple, en la linea 3 declaramos la variable “res” en la cual almacenaremos la suma del producto de los números naturales hasta n.-

1
res = 1; # Declaramos res para almacenar el producto del factorial

En cada iteración multiplicamos el valor almacenado en la variable res con el correspondiente al valor de i, es necesario indicar que en el ciclo for, i se inicializa en 1, dado que si se inicializa en 0, el resultados siempre sera 0.-

1
2
for i in range(1, n + 1):
    res = res * i

Casos de uso

Para verificar su funcionamiento, creamos un método para ingresar el dato.-

1
2
3
4
5
6
7
8
9
10
11
12
13
def enterData(self):
    '''
    Obtiene un dato ingresado por el usuario
    '''

    val = raw_input("Ingrese el numero a verificar: ")

    # verificamos que sea un numero entero
    try :
        val = int(val)
        return val
    except :
        return self.enterData()

Y declaramos la instancia de nuestra clase y la ejecutamos.-

1
2
3
4
5
6
# Acceso al programa
if __name__ == "__main__":
    # Instanciamos un objeto
    f = Factorial()
    # Corremos el programa
    f.init()

Ahora si ejecutamos el programa y probamos con el conjunto de datos { 25, 29 } obtendremos el siguiente resultado.-

1
2
3
4
Ingrese un numero: 5
Factorial de 5: 120
Ingrese un numero: 100
Factorial de 100: 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

Código de ejemplo

Puedes encontrar el código completo en el siguiente enlace (repositorio de github).-

Factorial.py

Conclusiones

Si te encontraste útil este articulo, por favor compártelo para que pueda llegar a más personas.

Que tengan feliz código


Te fue de utilidad el articulo, ayudanos a compartir para que a más personas les resulte util!

Te interesa el tema, recibe los nuevos articulos directamente en tu email.-