Cod sursa(job #1566124)

Utilizator yololy97Olaru Bogdan-Ioan yololy97 Data 11 ianuarie 2016 20:02:45
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.37 kb
#include <cstdio>
#define m 1999999973;
unsigned int i, n, p;
long long a, sol = 1;
int main(){
    freopen("lgput.in", "r", stdin);
    freopen("lgput.out", "w", stdout);
    scanf("%d %d", &n, &p);
    a = n;
    for(i = 0; (1<<i) <= p; ++i){
        if(((1<<i) & p) > 0)
            sol = (sol * a) % m;
        a = (a * a) % m;
    }
    printf("%lld\n", sol);
}