Cod sursa(job #1437938)

Utilizator BLz0rDospra Cristian BLz0r Data 18 mai 2015 20:50:37
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>
using namespace std;

#define Mod 1999999973

FILE *f = fopen ( "lgput.in", "r" );
FILE *g = fopen ( "lgput.out", "w" );

int LgPut ( int a, int N ){

    int rez = 1;

    while ( N ){
        if ( N & 1 )
            rez = ( 1LL * rez * a ) % Mod;
        a = ( 1LL * a * a ) % Mod;
        N >>= 1;
    }

    return rez;
}

int main(){

    int a, N;

    fscanf ( f, "%d%d", &a, &N );

    fprintf ( g, "%d", LgPut ( a % Mod, N % Mod ) );

    return 0;
}