#!/usr/bin/env python3 import numpy as np import timeit def fact_rec(n): # y = fact_rec(n) berechnet die Fakultät von n als # fact_rec(n) = n * fact_rec(n - 1) mit fact_rec(0) = 1 # Fehler, falls n <0 oder nicht ganzzahlig if n < 0 or np.trunc(n) != n: raise Exception('The factorial is defined only for positive integers') if n <= 1: return 1 else: return n*fact_rec(n-1) def fact_for(n): fak = 1 for num in range(n): fak *= n n -= 1 return fak if __name__ == "__main__": t1 = timeit.repeat( "fact_rec(500)", "from __main__ import fact_rec", number=100) print(t1) t2 = timeit.repeat( "fact_for(500)", "from __main__ import fact_for", number=100) print(t2)