cses

My solution for the coding challenges of cses.fi
git clone https://git.tronto.net/cses
Download | Log | Files | Refs | README

exponentiation_1095.cpp (443B)


      1 #include <iostream>
      2 
      3 static constexpr unsigned long long MOD = 1000000007;
      4 
      5 unsigned long long pow(unsigned long long a, unsigned long long b) {
      6 	if (b == 0) return 1;
      7 	if (a == 0) return 0;
      8 	if (b % 2 == 0) return pow(a*a % MOD, b/2) % MOD;
      9 	return (a * pow(a, b-1)) % MOD;
     10 }
     11 
     12 int main() {
     13 	unsigned long long n, a, b;
     14 	std::cin >> n;
     15 	for (unsigned long long i = 0; i < n; i++) {
     16 		std::cin >> a >> b;
     17 		std::cout << pow(a, b) << "\n";
     18 	}
     19 }