Factorial help


hi this is mine it's not working so please help:

def factorial(X):
    for num in range(1,X):
    return fac

Factorial HELP

because fac is created inside the loop and set to a certain value, you can see this:

def factorial(X):
    for num in range(1,X):
        print fac
    return fac
print fac(5)

see how each time, fac is just num*X? That is not working. You should set fac outside the for loop, and then add the multiplication to fac.


Need help with below:
Oops, try again. factorial(3) returned 2 instead of 6

What is wrong here? (seems i lost indent while pasting)

def factorial(num):
    factnum = 0 
    while num > 1:
        factnum = num * (num-1)
        num = num-1 
        if num == 1:
        factnum = 1
    return factnum

Here is indented code


now each run of the loop, you just set a new value instead of updating factnum.

Wen declaring factnum, make it one. then in each run of the loop, update it:

factnum = factnum * num

this way, you update factnum, in your case, factnum simply get set to a new value each time. You can see this if you add print statements. which is why factnum(3) is 2, since the last run of the loop will be: factnum = 2 * (2 - 1)


Thanks ,this resolved my issue.