Cod sursa(job #819112)
Utilizator | Andrei Dan andreidan | Data | 18 noiembrie 2012 15:44:32 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 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)
return (inmultire(a,jum,p)*inmultire(a,jum,p)*a)%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));
}