#include <iostream> using namespace std; int T; long long p; long long qpow(long long a,long long b){ long long q=1; while(b){ if(b&1)q=(q*a)%p; a=(a*a)%p; b>>=1; }return q; } int main() { long long a,b; cin>>T; while(T--){ cin>>a>>b>>p; cout<<(qpow(a,b))%p<<endl; } } // 64 位输出请用 printf("%lld")
主要是取模花的时间最多,快速幂模版,加对a幂数、q结果取模,这试了好一会儿,之前没发现a也要取模,溢出了,还有传入的时候不用取模