Cod sursa(job #1382310)

Utilizator mariusadamMarius Adam mariusadam Data 8 martie 2015 20:01:11
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>
#define k 1999999973
using namespace std;

ifstream r("lgput.in");
ofstream w("lgput.out");

long long n,p,x;

long long pow(long long n,long long p) {
    if (p==0)
        return 1;
    else
    if (p==1)
        return n;
    else
    if(p%2==0)
        return pow((n%k)*(n%k)%k, p/2)%k;
    else
        return n*pow((n%k)*(n%k)%k, (p-1)/2)%k;
}


int main() {
    r>>n>>p;
    x=pow(n%k,p%k);
    w<<x<<"\n";
    r.close();
    w.close();
}