Cod sursa(job #1194231)
| Utilizator | Data | 3 iunie 2014 10:36:32 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
using namespace std;
long long pow(long long x, long long n)
{
long long CONST = 1999999973;
long long p;
/*if (n == 0)
return 1;*/
if (n == 1)
return x % CONST;
p = pow(x, n/2) % CONST;
if (n % 2 == 0)
return (p * p) % CONST;
else
return (((x * p) % CONST) * p) % CONST;
}
int main()
{
long long x, n;
ifstream infile ("lgput.in");
ofstream outfile ("lgput.out");
infile >> x >> n;
outfile << pow(x, n);
outfile.close();
}
