Cod sursa(job #1692401)

Utilizator MithrilBratu Andrei Mithril Data 20 aprilie 2016 19:47:30
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>
#define MOD 1999999973
using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");
int n,p;

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

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