Cod sursa(job #1909063)
| Utilizator | Data | 7 martie 2017 11:32:31 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <bits/stdc++.h>
#define nn 1999999973
using namespace std;
unsigned long long lgput (unsigned long long a, unsigned long long b)
{
unsigned long long p=1;
while (b) {
if (b%2==1)
{
p=(p*a)%nn;
b--;
}
b=b/2;
a=(a*a)%nn;
}
return p;
}
int main()
{
ifstream f("lgput.in");
ofstream g("lgput.out");
unsigned long long n, p;
f >> n >> p;
g << lgput(n,p);
return 0;
}
