Cod sursa(job #255917)
| Utilizator | Data | 10 februarie 2009 21:06:23 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.4 kb |
#include <iostream>
using namespace std;
const long long M=1999999973;
long long N, P;
long long factor (long long N, long long P)
{
if (!P) return 1;
else
{
long long temp = factor (N,P/2);
if (P%2) return (N*temp*temp) % M;
else return (temp*temp) % M;
}
}
int main ()
{
freopen ("lgput.in","r",stdin);
freopen ("lgput.out","w",stdout);
cin>>N>>P;
cout << factor (N,P)<<'\n';
return 0;
}
