快速幂模板(洛谷1226)

洛谷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 }

 

posted @ 2019-08-19 10:00  Klaier  阅读(137)  评论(0编辑  收藏  举报