Ограничения рекурсии в python

Ограничения рекурсии в 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


Report Page