Cod sursa(job #1487012)

Utilizator samcroVartic Alexandru samcro Data 15 septembrie 2015 22:21:39
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <iostream>
#include <fstream>
#define number 1999999973
using namespace std;

fstream fin("lgput.in",ios::in);
fstream fout("lgput.out",ios::out);

long log(int n,int p){
    if(p < 0)
        return log(1/n,-p);
    if(p == 0)
        return 1;
    if(p == 1)
        return n;
    if(p%2 == 0)
    return log(n*n,p/2);
    if(p%2 !=0)
        return log(n*n,(p-1)/2);

}

int main()
{
    int n,p;
    fin >> n;
    fin >> p;
    fout << log(n,p) % number;
    return 0;
}