Submission
Status:
[PPPPPPPPPPPPPPPPPPPP]
Score: 100
User: Cmoss9
Problemset: ยกกำลัง
Language: cpp
Time: 0.005 second
Submitted On: 2024-10-03 22:01:12
#include <stdio.h>
const long long themod = 1000000007;
// normal long long can't run
long long mod_exp(int base, int exp, long long mod) {
long long result = 1;
long long base_mod = base % mod;
while (exp > 0) {
if (exp % 2 == 1) {
result = (result * base_mod) % mod;
}
base_mod = (base_mod * base_mod) % mod;
exp /= 2;
}
return result;
}
int main () {
int t;
scanf("%d", &t);
int n[t], m[t];
long long output[t];
for (int i = 0; i < t; i++) {
scanf("%d %d", &n[i], &m[i]);
}
for (int i = 0; i < t; i++) {
output[i] = mod_exp(n[i], m[i], themod);
}
for (int i = 0; i < t; i++) {
printf("%lld\n", output[i]);
}
}