Cod sursa(job #1101492)
Utilizator | Data | 8 februarie 2014 16:04:04 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <vector>
#include <bitset>
#include <queue>
#include <cmath>
#define mod 1999999973
#define ll long long
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
ll N, P;
ll lgput(ll baza, ll exp)
{
ll res=1;
while (exp)
{
if (exp%2) res=(1LL*res*baza)%mod;
else baza=(1LL*baza*baza)%mod;
exp/=2;
}
return res;
}
int main()
{
f>>N>>P;
g<<lgput(N, P)<<'\n';
return 0;
}