Cod sursa(job #177116)

Utilizator cretuMusina Rares cretu Data 12 aprilie 2008 12:42:46
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
#define mod 1999999973
#define sqr(x) ((x)*(x))

using namespace std;

long long Power(int x, int n)
{
     if (n == 0) return 1;
     if (n%2 != 0) return (x*Power(sqr(x), (n-1)/2))%mod;
     return Power(sqr(x), n/2)%mod;    
}

int main()
{
    long long n, p;
    ifstream fin("lgput.in");
    fin >> n >> p;
    fin.close();
    
    ofstream fout("lgput.out");
    fout << Power(n, p)%mod;
    fout.close();
    
    return 0;    
}