Cod sursa(job #1466844)

Utilizator Vlad_lsc2008Lungu Vlad Vlad_lsc2008 Data 31 iulie 2015 00:24:16
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <iostream>
#include <fstream>
#define fin "lgput.in"
#define fou "lgput.out"
#define modulo  1999999973;
using namespace std;
ifstream t1(fin);
ofstream t2(fou);
long long sol,p,n;

long long exp(long long x,long long n)
{
    if(n==0) return 1;
    else if(n==1) return x;
    else
    {
        if(n%2==0) return exp(x*x,n/2)%modulo;
        if(n%2==1) return x*exp(x*x,(n-1)/2)%modulo;
    }
}

int main()
{
    t1>>n>>p;
    t2<<exp(n,p)<<'\n';
    t1.close();
    t2.close();
    return(0);
}