一本通1326
【题目描述】
时间限制: 1000 ms 内存限制: 65536 KB
输入b,p,k的值,求b^p mod k的值。其中b,p,k×k为长整型数。
【输入】
输入b,p,k的值。
【输出】
求b^p mod k的值。
【输入样例】
2 10 9
【输出样例】
2^10 mod 9=7
#include <bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;
ll b, p, k;
ll quick_pow(ll a, ll b, ll mod){
ll res = 1; a%=mod;
while(b){
if(b&1) res=res*a%mod;
a = a*a%mod;
b >>= 1;
}
return res;
}
int main()
{
ios::sync_with_stdio(false);cin.tie(0);
cin >> b >> p >> k;
ll ans = quick_pow(b,p,k);
cout<<b<<'^'<<p<<" mod "<<k<<'='<<ans;
return 0;
}