基准时间限制:1 秒 空间限制:131072 KB 分值: 0
给出3个正整数A B C,求A^B Mod C。
例如,3 5 8,3^5 Mod 8 = 3。
Input
3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)
Output
输出计算结果
Input示例
3 5 8
Output示例
3
分析:自己复习快速幂,忘得差不多了!
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 inline ll read() 5 { 6 ll x=0,f=1; 7 char ch=getchar(); 8 while(ch<'0'||ch>'9') 9 { 10 if(ch=='-') 11 f=-1; 12 ch=getchar(); 13 } 14 while(ch>='0'&&ch<='9') 15 { 16 x=x*10+ch-'0'; 17 ch=getchar(); 18 } 19 return x*f; 20 } 21 ll qpow(ll x,ll p,ll c) 22 { 23 ll ret=1; 24 for(;p;p>>=1,x=x*x%c) 25 { 26 if(p&1) 27 ret=ret*x%c; 28 } 29 return ret; 30 } 31 int main() 32 { 33 ll x,p,c; 34 x=read(); 35 p=read(); 36 c=read(); 37 ll ans=qpow(x,p,c); 38 cout<<ans<<endl; 39 }