Cod sursa(job #234574)
| Utilizator | Data | 21 decembrie 2008 11:04:07 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include <stdio.h>
# define n 1999999973
long long put(long long N, long long P)
{
long long p;
if (P==0) return 1;
else if(P%2==1) return (N*put(N, P-1))%n;
else {
p=put(N,P/2);
return (p*p)%n;;
}
}
int main()
{
long long N,P;
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld %lld",&N,&P);
printf("%lld",put(N,P));
return 0;
}