输入b,p,k的值,求bp mod k的值。其中b,p,k*k为长整形数。
上代码:
#include <bits/stdc++.h>
using namespace std;
int b,p,k;
long long qp(long long a,long long n)
{
if(n==1) return a;
long long t=qp(a,n>>1);
t=t*t%k;
if(n&1) return t*a%k;
return t;
}
int main()
{
cin>>b>>p>>k;
cout<<b<<"^"<<p<<" mod "<<k<<"="<<qp(b%k,p)<<endl;
}