快速幂模板题。
注意范围很大,可能会超过ull所以在加一个龟速乘防止爆掉
#include<bits/stdc++.h> using namespace std; typedef unsigned long long ll; ll mul(ll,ll,ll); ///快速幂模板 ll power(ll a,ll b,ll p) { ll ans=1; for(; b; b>>=1) { if(b&1) ans=mul(ans,a,p); a=mul(a,a,p); } return ans; } ///快速乘模板 ll mul(ll a,ll b,ll p) { ll ans=0; for(; b; b>>=1) { if(b&1) ans=(ans+a)%p; a=a*2%p; } return ans; } int main() { int t; cin>>t; while(t--){ ll a,b,p; while(~scanf("%llu%llu%llu",&a,&b,&p)) printf("%llu\n",power(a%p,b,p));} return 0; }