Cod sursa(job #2036589)

Utilizator marvelousMarvelous marvelous Data 10 octombrie 2017 20:33:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <fstream>

using namespace std;

ifstream F("lgput.in");
ofstream G("lgput.out");

long long n, p;
const int MOD = 1999999973;

long long put( long long n, long long p )
{
    if( !p ) return 1;
    if( p == 1 ) return n;
    long long aux = put( n , p / 2 );
    aux = ( 1LL * aux * aux ) % MOD;
    if( p % 2 ) aux =  ( 1LL * aux * n ) % MOD;
    return aux;
}

int main()
{
    F >> n >> p;
    G << put( n , p );
    return 0;
}