n を計算するために多くの優れたアルゴリズムを読みました! mod m ですが、 m が素数の場合は通常有効でした。mが素数でない場合に良いアルゴリズムが存在するかどうかを知りたかった.誰かがアルゴリズムの基本的な関数も書いてくれると助かります.私は使用しています
long long factMOD(long long n,long long mod)
{
long long res = 1;
while (n > 0)
{
for (long long i=2, m=n%mod; i<=m; i++)
res = (res * i) % mod;
if ((n/=mod)%2 > 0)
res = mod - res;
}
return res;
}
しかし、factMOD(4,3) を印刷しようとすると間違った答えが返ってきます。このアルゴリズムのソース:
http://comeoncodeon.wordpress.com/category/algorithm/