阶乘模数

Factorial modulo some number

为了计算每个数字的阶乘,直到某个大数对某个数字取模并存储在 1 到 n(10000000) 的数组中。我一直在尝试一个天真的过程,对每个和每个数字并计算它并取模并使用先前计算的 result.Is 有什么好的算法可以执行此操作以获得最快的执行时间?我试过的代码如下:

int a[10000000]={};
int m;//some large number
a[0] = a[1] = 0;
for(int i = 2; i < 10000000; i++)
{
  a[i] = a[i] % m;
}

如果modulus m 小于或等于阶乘参数n,则n! = 0 mod米 (因为 m 将是 n 的除数!)。