diff options
Diffstat (limited to 'data/en/math/factorial')
-rw-r--r-- | data/en/math/factorial | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/data/en/math/factorial b/data/en/math/factorial new file mode 100644 index 0000000..95d0cd4 --- /dev/null +++ b/data/en/math/factorial @@ -0,0 +1,41 @@ +import time + + +def factorial_recursive(number): + """ Define a factorial function in recursive flavor """ + result = 1 + if number > 0: + result = number * factorial_recursive(number - 1) + print 'factorizing: ', number, ' result: ', result + return result + + +def factorial_iterative(number): + """ Define a factorial function in iterative flavor """ + result = 1 + for i in range(1, number + 1): + result = result * i + print 'factorizing: ', i, ' result: ', result + return result + + +def calculate(number, type): + """ Calculate factorial using recursive and iterative methods """ + start = time.time() + if type == 0: + type_s = 'recursive' + factorial_recursive(number) + else: + type_s = 'iterative' + factorial_iterative(number) + delta = time.time() - start + if delta > 0: + print 'Type: ', type_s, ' in: ', 1 / delta + else: + print 'Type: ', type_s + +# ask for a number to compute the factorial of +number = input('Please input a number:') +print 'Calculating...' +calculate(number, 0) +calculate(number, 1) |