From 8fe8a16f81d1fb71dff3f4f2a91622f71e39f2f5 Mon Sep 17 00:00:00 2001 From: HARSH VERMA Date: Sat, 7 Feb 2026 00:42:36 +0530 Subject: [PATCH 1/2] Improve readability of factorial implementation --- maths/factorial.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/maths/factorial.py b/maths/factorial.py index ba61447c7564..b24ba0d15e3e 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,20 @@ 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 +53,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 +69,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)}") From fca0c29f88a836eeecb3237d85da0fc7d3c2be6e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 19:13:54 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/factorial.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/maths/factorial.py b/maths/factorial.py index b24ba0d15e3e..2c49ed9da4b8 100644 --- a/maths/factorial.py +++ b/maths/factorial.py @@ -25,20 +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(number: int) -> int: - """ - + Calculate the factorial of a positive integer https://en.wikipedia.org/wiki/Factorial @@ -53,12 +52,12 @@ def factorial_recursive(number: int) -> int: Traceback (most recent call last): ... ValueError: factorial() not defined for negative values - + """ - + if not isinstance(number, int): raise ValueError("factorial() only accepts integral values") - + if number < 0: raise ValueError("factorial() not defined for negative values") return 1 if number in {0, 1} else number * factorial_recursive(number - 1)