Cod sursa(job #819128)

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

int inmultire(int a,int b,int p){
    int jum=0,put=0;
    if(b==1) return a;
    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,jum,p)%p)*(inmultire(a,jum,p)%p)*(a%p))%p;
    }

}

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

}