aboutsummaryrefslogtreecommitdiff
path: root/07_mathematics/exponentiation_ii_1712.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--07_mathematics/exponentiation_ii_1712.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/07_mathematics/exponentiation_ii_1712.cpp b/07_mathematics/exponentiation_ii_1712.cpp
new file mode 100644
index 0000000..6a894f5
--- /dev/null
+++ b/07_mathematics/exponentiation_ii_1712.cpp
@@ -0,0 +1,20 @@
1#include <iostream>
2
3static constexpr unsigned long long MOD = 1000000007;
4
5unsigned long long pow(unsigned long long a, unsigned long long b,
6 unsigned long long mod) {
7 if (b == 0) return 1;
8 if (a == 0) return 0;
9 if (b % 2 == 0) return pow(a*a % mod, b/2, mod) % mod;
10 return (a * pow(a, b-1, mod)) % mod;
11}
12
13int main() {
14 unsigned long long n, a, b, c;
15 std::cin >> n;
16 for (unsigned long long i = 0; i < n; i++) {
17 std::cin >> a >> b >> c;
18 std::cout << pow(a, pow(b, c, MOD-1), MOD) << "\n";
19 }
20}

Generated with cgit - Back to sebastiano.tronto.net