Cod sursa(job #771613)
| Utilizator | Data | 26 iulie 2012 16:54:44 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream afile ("lgput.in");
ofstream bfile ("lgput.out");
long n,m;
long put (int y)
{
if (y==1) return n;
if (y%2==0)
{
long tmp;
tmp=(put(y/2)) % 1999999973;
tmp=(tmp*tmp) % 1999999973;
return tmp;
} else
{
long tmp;
tmp=(put(y/2)) % 1999999973;
tmp=(tmp*tmp) % 1999999973;
tmp=(tmp*n) % 1999999973;
return tmp;
}
}
int main()
{
afile>>n>>m;
long rez;
rez=put(m);
bfile<<rez;
return 0;
}
