Cod sursa(job #862835)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 22 ianuarie 2013 23:02:32
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <cstdio>

using namespace std;

#define modulo 1999999973

long long n, p, rez = 1;

int main(){

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

    scanf("%lld %lld", &n, &p);

    for(int i = 0; (1<<i) <= p; ++i){

        if( ((1<<i) & p) > 0 )
            rez = (rez * n) % modulo;

        n = (n * n) % modulo;
    }

    printf("%lld", rez);

    return 0;
}