Cod sursa(job #1995262)
| Utilizator | Data | 27 iunie 2017 14:14:27 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
#define MOD 1999999973
using namespace std;
long long n,p;
long long rest(long long nr, long long put){
if(put==1){
return nr%MOD;
} else {
if(put%2==0){
int r=rest(nr,put/2);
return r*r%MOD;
} else {
int r=rest(nr,put-1);
return r*nr%MOD;
}
}
}
int main()
{
ifstream f ("lgput.in");
ofstream g ("lgput.out");
f>>n>>p;
g<<rest(n,p);
f.close ();
g.close ();
return 0;
}
