Cod sursa(job #1376352)

Utilizator alex.vasiuVasiu Alexandru alex.vasiu Data 5 martie 2015 17:10:12
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>

using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
long long int ex(long long int x,int n)
{
    if (n<0) return ex(1/x, -n)%1999999973;
    else if (n==0 ) return 1;
    else if (n==1)  return x%1999999973;
    else if (n%2==0) return ex(x*x, n/2)%1999999973;
    else if(n%2==1) return x * ex(x*x, (n-1)/2)%1999999973;
}
int main()
{
long long int  n,p;
f>>n>>p;
f.close();
g<<(long long int)ex(n,p)%1999999973;
g.close();
}