求x的y次方对z取模(x^y)mod z:蒙格马利快速幂模算法

原理:

积的取余等于取余的积的取余。

参考:

  1. https://blog.csdn.net/DBC_121/article/details/77646508 【推荐】
  2. https://blog.csdn.net/qq_36760780/article/details/80092665
  3. https://blog.csdn.net/ltyqljhwcm/article/details/53043646

代码:

long Montgomery(long a, long b, long m)
{
    long r  = 1;
    a %= m; // 降低a的规模
    while(b > 1)
    {
        if(b%2 == 1)
            r = (r*a)%m;
        a = (a*a)%m; // 降低a的规模
        b/=2;    // 降低b的规模
    }
    return r;    
}

你可能感兴趣的:(Algorithm)