Mai intai trebuie sa te autentifici.
Cod sursa(job #1296972)
Utilizator | Data | 21 decembrie 2014 16:47:15 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <iostream>
using namespace std;
const long long k = 1999999973;
long long putere(long long n, long long p) {
if(p==1)
return n % k;
if(p%2)
return (n*putere((n*n) % k, p/2)) % k;
else
return putere((n*n) % k, p/2);
}
int main()
{
FILE *in, *out;
in = fopen("lgput.in", "r");
out = fopen("lgput.out", "w");
long long n, p;
fscanf(in, "%lld %lld", &n, &p);
fprintf(out, "%lld\n", putere(n, p));
fclose(in);
fclose(out);
return 0;
}