problem 20 https projecteuler netproblem20 n means n n 1 3 2 1 for example 10 10 9 3 2 1 3628800 and the sum of the digits in the number 10 is 3 6 2 8 8 0 0 27 find the sum of the digits in the number 100 find the factorial of a given number n fact 1 for i in range1 num 1 fact i return fact def splitandaddnumber int int returns the sum of the digits in the factorial of num solution100 648 solution50 216 solution10 27 solution5 3 solution3 6 solution2 2 solution1 1 find the factorial of a given number n split number digits and add them removing the last_digit from the given number returns the sum of the digits in the factorial of num solution 100 648 solution 50 216 solution 10 27 solution 5 3 solution 3 6 solution 2 2 solution 1 1
def factorial(num: int) -> int:
    
    fact = 1
    for i in range(1, num + 1):
        fact *= i
    return fact


def split_and_add(number: int) -> int:
    
    sum_of_digits = 0
    while number > 0:
        last_digit = number % 10
        sum_of_digits += last_digit
        number = number // 10  
    return sum_of_digits


def solution(num: int = 100) -> int:
    
    nfact = factorial(num)
    result = split_and_add(nfact)
    return result


if __name__ == "__main__":
    print(solution(int(input("Enter the Number: ").strip())))