快速幂
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 }