《算法竞赛进阶指南》 1 (P4) a^b 快速幂


快速幂

 1 #include<cstdio>
 2 #include<cmath>
 3 #include<iostream>
 4 using namespace std;
 5 long long a,b,p;
 6 long long read(){
 7     long long w=0,f=1;char c;c=getchar();
 8     while(c>'9'||c<'0'){if(c=='-') f=-1;c=getchar();}
 9     while(c>='0'&&c<='9'){w=w*10+c-'0';c=getchar();}
10     return w*f;
11 }
12 long long ksm(long long t,long long tt){
13     long long ans=1,k=t,kk=tt;
14     while(kk>0){
15         if(kk&1) ans=ans*k%p;
16         k=k*k%p;kk>>=1;
17     }
18     ans%=p;
19     return ans;
20 }
21 int main(){
22     a=read();b=read();p=read();
23     cout<<ksm(a,b)<<endl;
24     return 0;
25 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM