Ограничения рекурсии в python
Почему рекурсия выполняется только 995 раз? и как это можно исправить?
Ответ:
Поскольку в комментарии речь зашла про конкретный случай, предлагаю как вариант метод быстрый, но, увы, не сильно точный. Зато считается примерно секунду на предложенном автором вопроса числе:
from numba import njit
@njit()
def factorial(n):
s = 1
d = 0
for i in range(2, n + 1):
s *= i
while s >= 10:
s /= 10
d += 1
return s,d
s,d = factorial(37_826_497)
print(f'{s}e+{d}')
Вывод:
4.349383396225913e+270213647