Cod sursa(job #1228544)
Utilizator | Bianca Costin o_mic | Data | 14 septembrie 2014 15:45:12 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.43 kb |
#include <iostream>
#define LL long long
#define MOD 1999999973
using namespace std;
LL power(LL exp, LL base)
{
if(exp == 1)
return base;
if(exp % 2)
return (base * power(exp / 2, (base * base)% MOD)) % MOD;
else
return (power(exp / 2, (base * base)% MOD))% MOD;
}
int main()
{
LL n, p;
freopen("lgput.in", "r", stdin);
freopen("lgput.out", "w", stdout);
cin >> n >> p;
cout << power(p, n);
return 0;
}