Cod sursa(job #2596392)
| Utilizator | Data | 9 aprilie 2020 18:03:38 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <stdio.h>
#include <bits/stdc++.h>
#define rep(i, n) for(int i = 0; i < n; i++)
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
const int INF = 0x3f3f3f3f;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
ll mod = 1999999973;
ll N, P;
int main(void) {
fin >> N >> P;
ll res = 1;
while(P) {
if (P & 1) {
res = (res * N ) % mod;
}
P /= 2;
N = (1ll * N * N) % mod;
}
fout << res << endl;
return 0;
}
