题目描述
求 a 的 b 次方对 p 取模的值,其中 1≤a,b,p≤10^9
输入
三个用空格隔开的整数a,b和p。
输出
一个整数,表示a^b mod p的值。
样例输入
2 3 9
样例输出
8
#include <bits/stdc++.h> using namespace std; #define ll long long ll qsm(ll a,ll b,ll p) { ll ans = 1; ll flag = a; while(b!=0) { if(b%2!=0) { ans*=flag; ans%=p; } flag*=flag; flag%=p; b/=2; } return ans; } int main() { ll a,b,p; cin>>a>>b>>p; cout<<qsm(a,b,p)%p; return 0; }