Cod sursa(job #819134)

Utilizator andreidanAndrei Dan andreidan Data 18 noiembrie 2012 16:14:54
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <cstdio>

long long inmultire(int a,int b,int p){
    int jum=0,put=0;
    if(b==0) return 0;
    if(b==1) return a%p;
    jum=b/2;
    if(b%2==0)
        return (inmultire(a,jum,p)*inmultire(a,jum,p))%p;
    if(b%2!=0){
        jum=(b-1)/2;
        return (inmultire(a,b-1,p)*inmultire(a,1,p))%p;
    }

}

int main (){
   freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    long long a,b,p;
    p=1999999973;
    scanf("%lld %lld",&a,&b);
    printf("%lld",inmultire(a,b,p));

}