Cod sursa(job #1503740)

Utilizator jimcarterJim Carter jimcarter Data 16 octombrie 2015 20:43:32
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
using namespace std;

FILE *f = fopen ( "lgput.in" , "r" ) , *g = fopen ( "lgput.out" , "w" );
const long long MOD = 1999999973;
long long N , P;

long long toPower ( long long x , long long exp )
{
    long long result = 1;
    while ( exp )
    {
        if ( exp % 2 == 1 )
        {
            exp --;
            result = ( result * x ) % MOD;
        }
        x = ( x * x ) % MOD;
        exp /= 2;
    }
    return result;
}

int main()
{
    //read
    fscanf ( f , "%I64d %I64d" , &N , &P );

    //print
    fprintf ( g , "%I64d\n" , toPower ( N , P ) );
    return 0;
}