from sys import argv def factorielleRecursive(n): """ calcul récursif de la factorielle. Sur ma machine, explose pour n = 998. """ if n == 0: return 1 return n * factorielleRecursive(n-1) def factorielleIterative(n): """ calcul itératif de la factorielle. Fonctionne encore pour n = 100 000. """ fact = 1 for i in range(1,n+1): fact *= i return fact # passer en premier paramètre le nombre dont on veut calculer la factorielle. Le # calcul sera alors effectué en utilisant la version récursive. Si on passe "i" # en deuxième paramètre, c'est la version itérative qui est appelée. if len(argv) > 2 and argv[2] == "i": print(factorielleIterative(int(argv[1]))) else: print(factorielleRecursive(int(argv[1])))