Submission
Status:
[PPPPPPPPPPPPPPPPPPPP]
Score: 100
User: Angonnyyy
Problemset: ยกกำลัง
Language: c
Time: 0.007 second
Submitted On: 2024-10-14 13:55:23
#include <stdio.h>
#include <math.h>
int mod(int b,int p){
if(p==1)return b;
int i;
long long int temp=b;
for(i=2;i<=p;i*=2){
temp = (temp*temp)%1000000007;
}
i/=2;
//printf("Temp %d^%d = %lld\n",b,i,temp);
if(i!=p) return (temp*mod(b,(p-i)))%1000000007;
return temp;
}
int main() {
int n;
scanf("%d",&n);
int i,j,b,p,ans[n];
for(i=0;i<n;i++){
scanf("%d %d",&b,&p);
ans[i] = mod(b,p);
}
for(i=0;i<n;i++){
printf("%d\n",ans[i]);
}
}