快速幂模板(洛谷1226)
快速幂,计算b^p%k,模板使用int,注意可能要开long long
1 //快速幂:计算b^p%k(luogu1226) 2 #include <cstdio> 3 4 using namespace std; 5 6 int power(int b,int p,int k) //计算b^p%k 7 { 8 int ans=1,m=b%k; 9 while (p>0) 10 { 11 if (p%2==1) ans=ans*m%k; 12 p>>=1;m=m*m%k; 13 } 14 return ans%k; 15 } 16 int main() 17 { 18 int b,p,k; 19 scanf("%d%d%d",&b,&p,&k); 20 printf("%d^%d mod %d=%d",b,p,k,power(b,p,k)); 21 return 0; 22 }