Cod sursa(job #1839642)

Utilizator alexandruchiriacAlexandru Chiriac alexandruchiriac Data 3 ianuarie 2017 11:46:10
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <fstream>
using namespace std;

#define mod 1999999973

ifstream f("lgput.in");
ofstream g("lgput.out");

long long N , P;

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


int main()
{
    f >> N >> P;
    g << exp_log(N,P);
    return 0;
}