diff --git a/maths/factorial.py b/maths/factorial.py index ba61447c7564..2c49ed9da4b8 100644 --- a/maths/factorial.py +++ b/maths/factorial.py @@ -1,6 +1,4 @@ -""" -Factorial of a positive integer -- https://en.wikipedia.org/wiki/Factorial -""" +"""FACTORIAL.""" def factorial(number: int) -> int: @@ -27,16 +25,19 @@ def factorial(number: int) -> int: """ if number != int(number): raise ValueError("factorial() only accepts integral values") + if number < 0: raise ValueError("factorial() not defined for negative values") value = 1 + for i in range(1, number + 1): value *= i return value -def factorial_recursive(n: int) -> int: +def factorial_recursive(number: int) -> int: """ + Calculate the factorial of a positive integer https://en.wikipedia.org/wiki/Factorial @@ -51,12 +52,15 @@ def factorial_recursive(n: int) -> int: Traceback (most recent call last): ... ValueError: factorial() not defined for negative values + """ - if not isinstance(n, int): + + if not isinstance(number, int): raise ValueError("factorial() only accepts integral values") - if n < 0: + + if number < 0: raise ValueError("factorial() not defined for negative values") - return 1 if n in {0, 1} else n * factorial_recursive(n - 1) + return 1 if number in {0, 1} else number * factorial_recursive(number - 1) if __name__ == "__main__": @@ -64,5 +68,5 @@ def factorial_recursive(n: int) -> int: doctest.testmod() - n = int(input("Enter a positive integer: ").strip() or 0) - print(f"factorial{n} is {factorial(n)}") + number = int(input("Enter a positive integer: ").strip() or 0) + print(f"factorial{number} is {factorial(number)}")