Cod sursa(job #1909053)
Utilizator | Data | 7 martie 2017 11:30:55 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <bits/stdc++.h>
#define nn 1999999973
using namespace std;
unsigned long long lgput (int a, int 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;
}