Cod sursa(job #1234074)
Utilizator | Vasile Toncu vtt271 | Data | 26 septembrie 2014 17:54:45 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <fstream>
using namespace std;
#define MOD 1999999973
int lgput(int n, int p)
{
if( p == 0 ) return 1;
if( p == 1 ) return n % MOD;
if( p%2 == 0 ) return ( (lgput(n,p/2)%MOD) * (lgput(n,p/2)%MOD) )%MOD;
else return ( (lgput(n,p-1)%MOD) * (n%MOD) )%MOD;
}
int main()
{
ifstream inFile("lgput.in");
ofstream outFile("lgput.out");
int n, p;
inFile >> n >> p;
outFile << lgput(n,p);
}