Cod sursa(job #316633)
Utilizator | Bacauanu Vlad pedobear | Data | 20 mai 2009 16:23:54 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include <stdio.h>
long long n,p;
long long ridic (long long a, long long b)
{
if (!b) return 1;
else if (b & 1) return (ridic(a,b-1) * a%1999999973)%1999999973;
else{
long long r = ridic(a,b>>1);
return ( (r%1999999973) * (r%1999999973) ) %1999999973;
}
}
int main ()
{
freopen ("lgput.in","r",stdin);
freopen ("lgput.out","w",stdout);
scanf ("%lld %lld",&n,&p);
printf ("%lld",ridic(n,p));
return 0;
}