幂取模 (分治法)

int pow_mod(int a,int n,int m )       //a^n % m
{
    if(n == 1) return a % m;
    int x = pow_mod(a,n/2,m);
    long long ans = (long long)x * x % m;
    if(n % 2 == 1) ans = ans * a % m;
    return (int)ans;
}

你可能感兴趣的:(数论初步)