Cod sursa(job #1382299)

Utilizator mariusadamMarius Adam mariusadam Data 8 martie 2015 19:55:26
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 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,p);
    w<<x<<"\n";
    r.close();
    w.close();
}