Cod sursa(job #407542)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 2 martie 2010 13:44:53
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <algorithm>
using namespace std;

#define MOD 1999999973

typedef long long int int_64;

int_64 A, B, XXX;

int main() {

    freopen( "lgput.in", "r", stdin );
    freopen( "lgput.out", "w", stdout );

    int_64 i, aux;

    scanf( "%lld %lld", &A, &B );

    XXX = 1;
    aux = A;
    for( i = 0; (1<<i) <= B; ++i ) {

        if( (1<<i) & B )
            XXX = (XXX*aux) % MOD;
        aux = (aux*aux) % MOD;
    }

    printf( "%lld", XXX );

    return 0;
}