题目描述
输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。
输入输出格式
输入格式:
三个整数b,p,k.
输出格式:
输出“b^p mod k=s”
s为运算结果
输入输出样例
2 10 9
//输出
//2^10 mod 9=7
解题思路
#include
#include
#include
#include
using namespace std;
typedef long long ll;
//快速幂
ll b,p,k,ans=1;
int main(int argc, char** argv) {
cin>>b>>p>>k;
printf("%lld^%lld mod %lld=",b,p,k);
if(p==0){
printf("%lld\n",1%k);
return 0;
}
while(p>=1){
if(p&1){
ans=(ans%k)*(b%k)%k ;
}//奇数 {
// b*=b%k;
b=(b*b)%k;
p>>=1;//p/2
}
printf("%lld\n",ans);
return 0;
}