diff --git a/project_euler/problem_20/sol1.py b/project_euler/problem_20/sol1.py index 13b3c987f046..b472024e54c0 100644 --- a/project_euler/problem_20/sol1.py +++ b/project_euler/problem_20/sol1.py @@ -1,4 +1,6 @@ """ +Problem 20: https://projecteuler.net/problem=20 + n! means n × (n − 1) × ... × 3 × 2 × 1 For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800, @@ -8,14 +10,15 @@ """ -def factorial(n): +def factorial(num: int) -> int: + """Find the factorial of a given number n""" fact = 1 - for i in range(1, n + 1): + for i in range(1, num + 1): fact *= i return fact -def split_and_add(number): +def split_and_add(number: int) -> int: """Split number digits and add them.""" sum_of_digits = 0 while number > 0: @@ -25,8 +28,8 @@ def split_and_add(number): return sum_of_digits -def solution(n): - """Returns the sum of the digits in the number 100! +def solution(num: int = 100) -> int: + """Returns the sum of the digits in the factorial of num >>> solution(100) 648 >>> solution(50) @@ -42,8 +45,8 @@ def solution(n): >>> solution(1) 1 """ - f = factorial(n) - result = split_and_add(f) + nfact = factorial(num) + result = split_and_add(nfact) return result diff --git a/project_euler/problem_20/sol2.py b/project_euler/problem_20/sol2.py index 14e591795292..92e1e724a647 100644 --- a/project_euler/problem_20/sol2.py +++ b/project_euler/problem_20/sol2.py @@ -1,4 +1,6 @@ """ +Problem 20: https://projecteuler.net/problem=20 + n! means n × (n − 1) × ... × 3 × 2 × 1 For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800, @@ -9,8 +11,8 @@ from math import factorial -def solution(n): - """Returns the sum of the digits in the number 100! +def solution(num: int = 100) -> int: + """Returns the sum of the digits in the factorial of num >>> solution(100) 648 >>> solution(50) @@ -26,7 +28,7 @@ def solution(n): >>> solution(1) 1 """ - return sum([int(x) for x in str(factorial(n))]) + return sum([int(x) for x in str(factorial(num))]) if __name__ == "__main__": diff --git a/project_euler/problem_20/sol3.py b/project_euler/problem_20/sol3.py index 13f9d7831c47..4f28ac5fcfde 100644 --- a/project_euler/problem_20/sol3.py +++ b/project_euler/problem_20/sol3.py @@ -1,4 +1,6 @@ """ +Problem 20: https://projecteuler.net/problem=20 + n! means n × (n − 1) × ... × 3 × 2 × 1 For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800, @@ -9,8 +11,8 @@ from math import factorial -def solution(n): - """Returns the sum of the digits in the number 100! +def solution(num: int = 100) -> int: + """Returns the sum of the digits in the factorial of num >>> solution(1000) 10539 >>> solution(200) @@ -32,7 +34,7 @@ def solution(n): >>> solution(0) 1 """ - return sum(map(int, str(factorial(n)))) + return sum(map(int, str(factorial(num)))) if __name__ == "__main__": diff --git a/project_euler/problem_20/sol4.py b/project_euler/problem_20/sol4.py index 4c597220f09b..b32ce309dfa6 100644 --- a/project_euler/problem_20/sol4.py +++ b/project_euler/problem_20/sol4.py @@ -1,4 +1,6 @@ """ +Problem 20: https://projecteuler.net/problem=20 + n! means n × (n − 1) × ... × 3 × 2 × 1 For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800, @@ -8,8 +10,8 @@ """ -def solution(n): - """Returns the sum of the digits in the number 100! +def solution(num: int = 100) -> int: + """Returns the sum of the digits in the factorial of num >>> solution(100) 648 >>> solution(50) @@ -27,7 +29,7 @@ def solution(n): """ fact = 1 result = 0 - for i in range(1, n + 1): + for i in range(1, num + 1): fact *= i for j in str(fact):