快速冥
描述
输入 b,p,k 的值,求 bp mod k的值。其中 b,p,k 为长整型数。
输入描述
输入 b,p,k 的值。
输出描述
求 bp mod k 的值。
样例输入 1
2 10 9样例输出 1
7
代码:
#include<bits/stdc++.h>
using namespace std;
//求a的b次方%k的结果
int main(){
long long a,b,k,ans=1;
cin>>a>>b>>k;
//判断b是否为偶数
//是:a=a*a,b/=2;
//不是:ans*=a;a=a*a;b/=2
while(b>0){
if(b%2==1){
ans=(ans*a)%k;
}
a=(a*a)%k;
b/=2;
}
cout<<ans;
return 0;
}