Cod sursa(job #1118274)

Utilizator YoYoxxIftimesei Ioan YoYoxx Data 24 februarie 2014 09:35:29
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <fstream>
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
int n,k;
int exp(int x,int k)
{
    if(k<0) return exp((1/x)%1999999973,-k);
    else if(k==0) return 1;
    else if(k==1) return x%1999999973;
    else if(k%2==0) return exp((x*x)%1999999973,k/2);
    else if(k%2==1) return x*exp((x*x)%1999999973,(k-1)/2);
}


int main()
{
    in>>n>>k;
    out<<exp(n,k);
    return 0;
}