Obtener el factorial de un número 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).-
Conclusiones
Si te encontraste útil este articulo, por favor compártelo para que pueda llegar a más personas.
Que tengan feliz código