Cod sursa(job #793423)

Utilizator gallexdAlex Gabor gallexd Data 2 octombrie 2012 21:35:44
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include <cstdio>

int m = 1999999973;
int N, p;

int main () {

    freopen("lgput.in", "rt", stdin);
    freopen("lgput.out", "wt", stdout);

    scanf("%d %d", &N, &p);

    long long a = N, sol = 1;
    for (int i=1; i<=p; i<<=1) {
        if ( (i&p) > 0 )
            sol = (sol * a) % m;
        a = (a*a) % m;
    }

    printf("%lld", sol);

    return 0;
}