Cod sursa(job #2120454)

Utilizator mihitudorMihalcea Tudor mihitudor Data 2 februarie 2018 14:47:54
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <stdio.h>
long long ridicare (long long baza, long long exp) {
    long long rez=1;
    while(exp!=0) {
        if(exp%2==0) {
            baza=baza*baza;
            baza=baza%1999999973;
            exp=exp/2;
        }
        else {
            rez=rez*baza;
            rez=rez%1999999973;
            exp--;
        }
    }
    return rez;
}
int main () {
    long long baza, exp;
    freopen("lgput.in", "r", stdin);
    freopen("lgput.out", "w", stdout);
    scanf("%lld%lld", &baza, &exp);
    printf("%lld", ridicare(baza, exp));
    return 0;
}