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