快速幂模板

 

利用次数的位运算二进制加速

 1 #include<stdio.h>

 2 #define ll long long

 3 

 4 ll QuickPow(ll a,ll n,ll mod){  5     ll tmp=a,ans=1;  6     while(n){  7         if(n&1)    ans=ans*tmp%mod;  8         tmp=tmp*tmp%mod;  9         n>>=1; 10  } 11     return ans; 12 } 13 

14 int main(){ 15  ll a,n,mod; 16     while(scanf("%lld%lld%lld",&a,&n,&mod)!=EOF){ 17         ll m=QuickPow(a,n,mod); 18         printf("%lld\n",m); 19  } 20     return 0; 21 }
View Code

 

你可能感兴趣的:(模板)