Cod sursa(job #196422)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 26 iunie 2008 13:37:14
Problema Ridicare la putere in timp logaritmic Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <stdio.h>   
int n,p,mod;
long long putere(int n, int p)
{   
if (p==1) return n;
else if (p%2) return ((((putere(n,p/2)%mod)*(putere(n,p/2)%mod))%mod)*n)%mod;
else return ((putere(n,p/2)%mod)*(putere(n,p/2)%mod))%mod;
}   
int main()
{   
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
mod=1999999973;
scanf("%d %d",&n,&p);
printf("%lld\n",putere(n,p) % mod);
return 0;
}