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]);
    }
        
    
    
    
    
}