Оптимизировать вычисление факториала

13. Оптимизировать вычисление факториала

Условие задачи Функция работает слишком медленно на больших входных данных. Нужно предложить более эффективное решение, сохранив корректность результата.

def test(x):
    y = 1
    for i in range(1, x + 1):
        y *= i
    return y