51Nod 1046 A^B Mod C(日常复习快速幂)

时间:2023-03-09 21:24:23
51Nod 1046 A^B Mod C(日常复习快速幂)

1046 A^B Mod C51Nod 1046 A^B Mod C(日常复习快速幂)

基准时间限制: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
分析:自己复习快速幂,忘得差不多了!
 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read()
{
ll x=,f=;
char ch=getchar();
while(ch<''||ch>'')
{
if(ch=='-')
f=-;
ch=getchar();
}
while(ch>=''&&ch<='')
{
x=x*+ch-'';
ch=getchar();
}
return x*f;
}
ll qpow(ll x,ll p,ll c)
{
ll ret=;
for(;p;p>>=,x=x*x%c)
{
if(p&)
ret=ret*x%c;
}
return ret;
}
int main()
{
ll x,p,c;
x=read();
p=read();
c=read();
ll ans=qpow(x,p,c);
cout<<ans<<endl;
}