題目
https://www.acwing.com/problem/content/description/91/
思路
-
重要公式:
-
證明
-
快速冪模板
//a^b int res = 1; while(b) { if(b&1) res = res*a; a = a*a; b >>= 1; }
AC代碼
#include <iostream>
using namespace std;
int main(){
int a,b, p;
cin >> a >> b >> p;
int res = 1%p;
while (b){
if (b & 1) res = (long long)res * a % p;
b >>=1;
a = (long long)a * a %p;//這裏取模由上述公式證明可得
}
cout <<res ;
return 0;
}