Completed Problem 21, added new functions: GetAllPossibleProducts, GetAllFactors and SumAllFactors