快速幂取模


1
typedef long long ll; 2 ll mod_pow(ll x, ll n, ll mod){ 3 ll res = 1; 4 while( n > 0 ){ 5 if( n & 1 ) res = res * x % mod; 6 x = x * x % mod; 7 n >>= 1; 8 } 9 return res; 10 }

 递归版

1 typedef long long ll;
2 ll mod_pow(ll x, ll n, ll mod){
3     if( n == 0 ) return 1;
4     ll res = mod_pow( x * x % mod, n / 2, mod );
5     if( n & 1 ) res = res * x % mod;
6     return res;
7 }

 

你可能感兴趣的:(快速幂取模)