a b a^b ab
求 a a a 的 b b b 次方对 p p p 取模的值。
输入格式
三个整数 a , b , p , a,b,p , a,b,p,在同一行用空格隔开。
输出格式
输出一个整数,表示 a b m o d p a^b mod p abmodp的值。
数据范围
0 ≤ a , b ≤ 1 0 9 0≤a,b≤10^9 0≤a,b≤109
1 ≤ p ≤ 1 0 9 1≤p≤10^9 1≤p≤109
输入样例:
3 2 7
输出样例:
2
分析: 套快速幂模板,没啥可说的。。。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int a,b,p;
LL qmi(int a,int b,int p){
LL res=1%p;
while(b){
if(b&1) res=res*a%p;
b>>=1;
a=a*(LL)a%p;
}
return res;
}
int main(){
cin>>a>>b>>p;
cout<<qmi(a,b,p)<<endl;
}