/*将指数转化为2进制,实现快速幂的计算,注意两处数据可能溢出,设为long long */ #include <iostream> using namespace std; long long getmod(long long a,int b,int p){//计算 a的b次方mod(p) long long ans=1; a=a%p; while(b!=0){ if(b%2==1){ ans*=a; ans=ans%p;//ans可能会溢出 } b/=2; a*=a;//a可能溢出 a=a%p; } return ans; } int main() { long long a; int b, p, q; scanf("%d",&q); for(int i=0;i<q;i++){ scanf("%lld %d %d ",&a,&b,&p); printf("%lld\n",getmod(a,b,p)); } }