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