Cod sursa(job #1229261)

Utilizator Darius15Darius Pop Darius15 Data 16 septembrie 2014 20:19:32
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <fstream>

using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
long long n,p,l,m=1999999973,x;
long long rec(int p)
{
    l++;
    long long u=1;
    if (p==0)
    return 1;
    else
    {
        x=rec(p/2);
        x=x%m;
        u=x*x;
        u=u%m;
        if (p%2==1) u=u*n;
        u=u%m;
        return u;

    }
}
int main()
{
    f>>n>>p;
    g<<rec(p)<<'\n';
    return 0;
}