Cod sursa(job #1234080)

Utilizator vtt271Vasile Toncu vtt271 Data 26 septembrie 2014 17:58:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>

using namespace std;

#define MOD 1999999973

long long lgput(long long n, long long 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;
    if( p%2 == 1 ) return ( (lgput(n,p-1)%MOD) * (n%MOD) )%MOD;
}

int main()
{
    ifstream inFile("lgput.in");
    ofstream outFile("lgput.out");

    long long n, p;

    inFile >> n >> p;

    outFile << lgput(n,p);

}