Cod sursa(job #961739)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 12 iunie 2013 19:36:30
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
#define X 1999999973

using namespace std;

ifstream f("lgput.in");
ofstream g("lgput.out");

long long N,P;

long long Putere(long long N,long long P)
{

    long long m=1;
    while (P!=1)
    if(P % 2==0)
    {
        N=(N*N) % X;
        P/=2;
    }
    else
    {
        m=(m*N) % X;
        P--;
    }
    return (m*N)% X;
}

int main()
{
    f>>N>>P;
    g<<Putere(N,P)<<'\n';
    f.close();g.close();
    return 0;
}