Logotipo de Zephyrnet

Programa de Python para encontrar el factorial de un número

Fecha:

  1. Que es factorial
  2. Fórmula factorial
  3. 10 factoriales
  4. factorial de 5
  5. factorial de 0
  6. Programa factorial en Python
    1. Programa factorial en Python usando función
    2. Programa factorial en Python usando for loop
    3. Programa factorial en Python usando recursividad
  7. Contar ceros finales en factorial
  8. Preguntas frecuentes

Planteamiento del problema: Tenemos la intención de usar Python para cubrir los conceptos básicos de factorial y computación factorial de un número.

¿Qué es Factorial?

En palabras simples, si quieres encontrar el factorial de un entero positivo, sigue multiplicándolo por todos los enteros positivos menores que ese número. El resultado final que obtienes es el factorial de ese número. Entonces, si desea encontrar el factorial de 7, multiplique 7 con todos los números enteros positivos menores que 7, y esos números serían 6,5,4,3,2,1. Multiplica todos estos números por 7, y el resultado final es el factorial de 7.

Si está buscando desarrollar su experiencia en el programa factorial de Python, considere obtener la certificación. Este curso gratuito de Programa Factorial en Python le ofrece una guía completa sobre el tema y también un certificado al finalizar que seguramente hará que su CV se destaque.

fórmula de factorial

El factorial de un número se denota por n! es el producto de todos los enteros positivos menores o iguales a n:
¡norte! = norte*(n-1)*(n-2)*.....3*2*1

10 Factoriales

Entonces, ¿qué es 10? Multiplica 10 por todos los enteros positivos menores que 10.
10! =10*9* 8 *7* 6 *5* 4 *3*2*1=3628800

Factorial de 5

Para encontrar '5!' de nuevo, haz el mismo proceso. Multiplica 5 con todos los enteros positivos menores que 5. Esos números serían 4,3,2,1
5!=5*4* 3 *2*1 = 120

Factorial de 0

Dado que 0 no es un número entero positivo, por convención, el factorial de 0 se define como él mismo.
0! = 1

programa factorial en python
factorial de un numero

Calcular esto es un problema interesante. Pensemos por qué la simple multiplicación sería problemática para una computadora. La respuesta a esto radica en cómo se implementa la solución.

1! = 1
2! = 2
5! = 120
10! = 3628800
20! = 2432902008176640000
30! = 9.332621544394418e+157

El aumento exponencial de los valores nos muestra que factorial es una función exponencial, y el tiempo necesario para calcularla sería un tiempo exponencial.

Programa factorial en Python

Vamos a pasar por 3 formas en las que podemos calcular el factorial:

  • Usando una función del módulo matemático
  • Enfoque iterativo (usando for loop)
  • Enfoque recursivo

Programa factorial en Python usando la función

Este es el método más sencillo que se puede utilizar para calcular el factorial de un número. Aquí tenemos un módulo llamado matemáticas que contiene varias operaciones matemáticas que se pueden realizar fácilmente usando el módulo.

import math
num=int(input("Enter the number: "))
print("factorial of ",num," (function): ",end="")
print(math.factorial(num))

PRUEBA EL CÓDIGO

Entrada – Introduzca el número: 4
Salida – Factorial de 4 (función):24

Programa factorial en python usando for loop

def iter_factorial(n):
    factorial=1
    n = input("Enter a number: ")
    factorial = 1
    if int(n) >= 1:
        for i in range (1,int(n)+1):
            factorial = factorial * i
        return factorial
  
num=int(input("Enter the number: "))

print("factorial of ",num," (iterative): ",end="")
print(iter_factorial(num))

PRUEBA EL CÓDIGO

Entrada – Introduzca el número: 5
Salida - Factorial de 5 (iterativo): 120

Considere el programa iterativo. Se necesita mucho tiempo para que se ejecute el ciclo while. El programa anterior toma mucho tiempo, digamos infinito. El propósito mismo de calcular el factorial es obtener el resultado a tiempo; por lo tanto, este enfoque no funciona para grandes números.

Programa factorial en Python usando recursividad

def recur_factorial(n):
    """Function to return the factorial
    of a number using recursion"""
    if n == 1:
        return n
    else:
        return n*recur_factorial(n-1)

num=int(input("Enter the number: "))

print("factorial of ",num," (recursive): ",end="")
print(recur_factorial(num))

PRUEBA EL CÓDIGO

Entrada – Entrada – Introduzca el número: 4
Salida – Factorial de 5 (recursivo) : 24

En una computadora con 16 GB de RAM, el programa anterior podría calcular valores factoriales de hasta 2956. Más allá de eso, excede la memoria y, por lo tanto, falla. El tiempo necesario es menor en comparación con el enfoque iterativo. Pero esto viene a costa del espacio ocupado.

¿Cuál es la solución al problema anterior?
El problema del cálculo factorial tiene una estructura altamente repetitiva.

Para calcular el factorial (4), calculamos f(3) una vez, f(2) dos veces y f(1) tres veces; a medida que aumenta el número, aumentan las repeticiones. Por lo tanto, la solución sería calcular el valor una vez y almacenarlo en una matriz desde donde se pueda acceder a él la próxima vez que se requiera. Por lo tanto, usamos programación dinámica en tales casos. Las condiciones para implementar la programación dinámica son

  1. Subproblemas superpuestos
  2. subestructura óptima 

Considere la modificación del código anterior de la siguiente manera:

def DPfact(N):
    arr={}
    if N in arr:
        return arr[N]
    elif N == 0 or N == 1:
        return 1
        arr[N] = 1
    else:
        factorial = N*DPfact(N - 1)
        arr[N] = factorial
    return factorial
    
num=int(input("Enter the number: "))

print("factorial of ",num," (dynamic): ",end="")
print(DPfact(num))

PRUEBA EL CÓDIGO

Entrada – Introduzca el número: 6
Salida – factorial de 6 (dinámico) : 720

Una solución de programación dinámica es altamente eficiente en términos de complejidades de tiempo y espacio.

Contar ceros finales en Factorial usando Python

Declaración del problema: cuente la cantidad de ceros en el factorial de un número usando Python

num=int(input("Enter the number: "))
  
# Initialize result 
count = 0
# Keep dividing n by 
# powers of 5 and 
# update Count 
temp = 5
while (num / temp>= 1):
    count += int(num / temp) 
    temp *= 5

# Driver program  
print("Number of trailing zeros", count)

Salida
Ingrese el Número: 5
Número de ceros finales 1

Aprenda a encontrar si una cuerda es un palíndromo.

Aprende a imprimir el Serie de Fibonacci en Python. Además, aprender inteligencia artificial en linea con la ayuda de este curso de IA.

Preguntas frecuentes

¿Qué es el factorial en matemáticas?

Factorial de un número, en matemáticas, es el producto de todos los enteros positivos menores o iguales a un número positivo dado y denotado por ese número y un signo de exclamación. De este modo, factorial siete se escribe 4! es decir, 1 × 2 × 3 × 4, igual a 24. El cero factorial se define como igual a 1. El factorial de los números reales y negativos no existe.

¿Cuál es la fórmula del factorial?

Para calcular el factorial de un número N, usa esta fórmula:

Factoriales=1 x 2 x 3 x…x N-1 x N

¿Hay una función factorial en Python?

Sí, podemos importar un módulo en Python conocido como matemáticas que contiene casi todas las funciones matemáticas. Para calcular factorial con una función, aquí está el código:

import math
num=int(input("Enter the number: "))
print("factorial of ",num," (function): ",end="")
print(math.factorial(num))

¿Encontraste este blog interesante? Aprende Inteligencia Artificial en Línea con la ayuda del curso de inteligencia artificial y aprendizaje automático PGP de Great Learning, ¡y mejore sus habilidades hoy mismo!

punto_img

Información más reciente

punto_img

Habla con nosotros!

¡Hola! ¿Le puedo ayudar en algo?