Быстрый способ рассчитать! мод м, где м простое число?

Мне было любопытно, если бы был хороший способ сделать это. Мой текущий код выглядит примерно так:

def factorialMod(n, modulus):
    ans=1
    for i in range(1,n+1):
        ans = ans * i % modulus    
    return ans % modulus

Но это кажется довольно медленным!

Я тоже не могу рассчитать! и затем примените простой модуль, потому что иногда n настолько велико, что n! просто не представляется возможным рассчитать явно.

Я тоже сталкивалсяhttp://en.wikipedia.org/wiki/Stirling%27s_approximation и интересно, может ли это вообще использоваться здесь каким-то образом?

Или, как я могу создать рекурсивную, запоминаемую функцию в C ++?

Ответы на вопрос(8)

Ваш ответ на вопрос