Cod sursa(job #1167067)

Utilizator mihail.jianuJianu Mihail mihail.jianu Data 4 aprilie 2014 12:17:37
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<cstdio>
const long long MOD=1999999973;
long long a,b;
long long raise(){
    int nr;
    if(b==0)
        return 1;
    if(b%2==0){
        b/=2;
        nr=raise()%MOD;
        return (nr*nr)%MOD;
    }
    b--;
    return ((raise()%MOD)*(a%MOD))%MOD;
}
void init(){
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%I64d%I64d",&a,&b);
}
int main(){
    init();
    printf("%I64d",raise());
    return 0;
}