Cod sursa(job #1163966)

Utilizator macajouMaca George macajou Data 1 aprilie 2014 19:22:27
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
#define mod 1999999973

using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

long long n,p;

long long put(long long p)
{
    long long x,y;
    if(p==1)
       x=n;
    else if(p==2)
       x=n*n;
    else
        {
            y=put(p/2);
            x=(y*y)%mod;
            if(p%2)
               x=x*n;
        }
    return x%mod;
}

int main()
{

    fin>>n>>p;
    fout<<put(p);

    return 0;
}