Código de Python - Calcular el factorial de un número en Python

Versión 1
estrellaestrellaestrellaestrellaestrella(26)

Actualizado el 6 de Abril del 2016 (Publicado el 29 de Septiembre del 2013)gráfica de visualizaciones de la versión: Versión 1
144.287 visualizaciones desde el 29 de Septiembre del 2013
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# -*- coding: UTF-8 -*-
 
"""
Simple código que devuelve el factorial de un numero dado

Para calcular dicho valor, hay que multiplicar el numero dado, por su
antecesor mientas sea superior a 1

Ejemplo del factorial de 5 seria:
	5 * 4 * 3 * 2 * 1  = 120
"""
 
def factorial(x,n):
	"""
	Función recursiva que calcula el factorial
	Tiene que recibir:
		x=>El ultimo valor calculado
		n=>El numero a multiplicar
	"""
	if(n>0):
		# Se va llamando a ella misma mientras el valor sea superior a 0
		x=factorial(x,n-1)
		x=x*n
	else:
		x=1
	return x
 
try:
	numero = int(raw_input("inserta un numero "))
 
	# Ejecutamos la función recusiva para el calculo
	calculo=factorial(1,numero)
	print "El factorial de %s es %s" % (numero,calculo)
except:
	print "\nTiene que ser un valor numerico"



Comentarios sobre la versión: Versión 1 (26)

mauricio
3 de Septiembre del 2015
estrellaestrellaestrellaestrellaestrella
este esta mejor:
1
2
3
4
5
6
def factorial (*n):
    for x in n:
        fac=1
        for y in range(1,x+1):
            fac=fac*y
        print fac

y en el shell, solamente escriben:
1
factorial(5)
Responder
null
15 de Enero del 2016
estrellaestrellaestrellaestrellaestrella
1
2
3
4
5
6
7
8
y = input("Type a number:")
x = int(y)
count = 1
z = 1
while z <= x:
    count = count * z
    z = z + 1
print(count)
Responder
juan
4 de Abril del 2019
estrellaestrellaestrellaestrellaestrella
pues ami no me va
Responder
cristian
13 de Mayo del 2020
estrellaestrellaestrellaestrellaestrella
Hola.

Quería decirte un par de cosas:

1.El tuyo no esta mejor porque ya lo dice el que puso el codigo al principio del mensaje lo hace usando
función recursiva. Eso significa que es un ejemplo de como usar una función recursiva. no dice que
sea la mejor manera.
2. Siempre es mejor la función recursiva.
Responder
cristian
13 de Mayo del 2020
estrellaestrellaestrellaestrellaestrella
Soy yo de nuevo lo que si sobra el enviar como parametro la x y el definir como argumento la x en la funcion
Responder
Frosecold
4 de Marzo del 2016
estrellaestrellaestrellaestrellaestrella
1
2
3
4
5
def factorial(X):
    prod=1
    for i in range(1,X+1):
        prod=prod*i
    return prod
Responder
Max
6 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
El desglose del factorial de un 5 no es exactamente 5 * 4 * 3 * 2 * 1 * 0, porque multiplicando por 0 tendríamos 0 de resultado, pequeño detalle.
Responder
Imágen de perfil
6 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
Tienes razón Max, ya lo he corregido!!!
Responder
Juan Esteban
23 de Marzo del 2020
estrellaestrellaestrellaestrellaestrella
pero tengan en cuanta que eell factorial de de 0 es 1 por lo que es algo a tener en cuenta, Salu2
Responder
Christian
26 de Mayo del 2016
estrellaestrellaestrellaestrellaestrella
por que en factoriales el 0 es igual a 1
Responder
Sebastián
22 de Octubre del 2016
estrellaestrellaestrellaestrellaestrella
Podemos demostrarlo de la siguiente manera.
Sabemos que 1!=1 y todo factorial de un número n cumple la siguiente condición: n!=n*(n-1)!; por lo tanto:
1!=1*(1-1)!→1!=1*0!→1!/1=0!→1/1=0!→1=0!
Queda así demostrado que 0!=1.
Espero haberte ayudado.
Responder
WALEX
22 de Noviembre del 2016
estrellaestrellaestrellaestrellaestrella
1
2
3
4
5
6
7
factorial=1
print("Dame un numero")
x=eval (input())
for i in range (1,x+1):
    factorial=factorial*i
 
print(factorial)
Responder
dylandroide
11 de Julio del 2021
estrellaestrellaestrellaestrellaestrella
gracias bro, me ayudaste
Responder
Pretonox
11 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
1
2
3
4
5
6
# Así es más sencillo aún.
def factorial (n):
    f = 1
    for i in range (2, n+1):
        f = f*i
    return (f)
Responder
Anderson
16 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
1
2
3
4
5
6
7
8
9
10
11
12
13
def factorial(numer):
    if numer>=1:
 
        f=numer
        while numer>=2:
            numer=numer-1
            f=f*(numer)
        print("el factorial es: ",f)
    if numer==0:
        print("el factorial es 1")
 
 
factorial(int(input("ingrese el numero para calcular su factorial: ")))
Responder
Tano
31 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
1
2
3
4
def factorial(num):
    while num != 1:
        return (num * factorial(num-1))
    return 1
Responder
David
2 de Enero del 2018
estrellaestrellaestrellaestrellaestrella
La mejor forma:
1
2
3
4
5
6
7
def factorial(a):
    factorial = 1
    i = 1
    while i <= a:
        factorial *= i
        i += 1
    print("El resultado es: ", factorial)
Te recomiendo aprender C++, no es tan complicado y entenderás mucho mejor la programacion.
Hay un canal de youtube con mas de 133 videos de unos 5 minutos cada uno, es GENIAL.
Se llama ProgramacionATS.
Un abrazo.
Responder
Karlas lezcano
13 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Necesito estar en contacto Porq no me funciona y no se que estoy haciendo mal
Responder
cris
5 de Septiembre del 2018
estrellaestrellaestrellaestrellaestrella
por curiosidad . que no funciona ? :/
Responder
cris
5 de Septiembre del 2018
estrellaestrellaestrellaestrellaestrella
buen código para entender la recursividad like :)
Responder
Jorge
17 de Noviembre del 2018
estrellaestrellaestrellaestrellaestrella
1
2
3
4
5
6
7
def factorial(num):
    if (num == 1):
        return num
    else:
        return num * factorial(num - 1)
 
print("El factorial de 4 es: ", factorial(4))
Responder
Lucas
31 de Enero del 2019
estrellaestrellaestrellaestrellaestrella
1
2
3
4
5
6
7
8
9
def factorial(num):
    fact = 1
    for i in range(1, num):
        fact += fact * i
    return fact
 
 
numero = int(input('Ingrese un numero'))
print('Su factorial es :', factorial(numero))
Responder
Pablo corvera
16 de Mayo del 2020
estrellaestrellaestrellaestrellaestrella
Acá está mi código,lo hice en python3:

1
2
3
4
5
6
7
8
9
n=int(input("escriba numero: "))
mult=1
for i in range(n+1):
	if i==0:
		continue
	else:
		mult=mult*i
 
print("resultado",str(mult))
Responder
Andy Leyva
11 de Octubre del 2020
estrellaestrellaestrellaestrellaestrella
muchas gracias tu programa esta muy facil de enter me ayudaste con un gran tarea
Responder
Lucho
9 de Julio del 2020
estrellaestrellaestrellaestrellaestrella
Hola a todos.
Comprendiendo que todo ha cambiado mucho desde el primer post 2013...por aquí os dejo uno sencillo.
A ver que os parece.

1
2
3
4
f = int(input("Introduzca el número: "))
for n in range(1, f, 1):
    f *= n
print(f)
Responder
JuanJo qq
26 de Agosto del 2020
estrellaestrellaestrellaestrellaestrella
1
2
3
4
5
6
factorial = 1
f = int(input("Ingrese un número al que se le va a calcular el factorial:   "))
for x in range (1,f+1):
    factorial = factorial * x
 
print (" El factorial del número",f," ", "es",factorial)
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2496