Cod sursa(job #1310695)

Utilizator thesvcoolmanLucian Bicsi thesvcoolman Data 7 ianuarie 2015 08:23:42
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<fstream>
#include<cmath>
#define CAT 1999999973

using namespace std;

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

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

int main() {
    long long n, p;
    fin>>n>>p;
    fout<<put(n,p)%CAT;
}