import time def fact_rec(n): if n < 1 or n >= 1000: return "Error" if n <= 1: return 1 return n * fact_rec(n - 1) def fact_it(n): if n < 1 or n >= 1000: return "Error" result = 1 for i in range(2, n + 1): result *= i return result if __name__ == '__main__': n = 999 max_it = 0 for _ in range(1000): start_1 = time.time() fact_it(n) it_time = time.time() - start_1 if max_it < it_time: max_it = it_time max_rec = 0 for _ in range(1000): start_2 = time.time() fact_rec(n) rec_time = time.time() - start_2 if max_rec < rec_time: max_rec = rec_time print(f"Итеративная: {max_it}с") # 0.001142740249633789 print(f"Рекурсивная: {max_rec}с") # 0.0011646747589111328