Cod sursa(job #818767)
Utilizator | Salagean Calin dooma | Data | 17 noiembrie 2012 23:06:48 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include<fstream>
using namespace std;
// declarations
#define MODUL 1999999973
typedef unsigned long long intPoz;
intPoz logPow(intPoz n, intPoz p){
intPoz temp;
if(!p) return 1;
if(p%2) return (n*logPow(n,p-1))%MODUL;
temp = logPow(n,p/2)%MODUL;
return temp*temp%MODUL;
}
int main()
{
intPoz N,P;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
fin >> N >> P;
fout << logPow(N,P);
fin.close();
fout.close();
return 0;
}