Cod sursa(job #234563)
Utilizator | Data | 21 decembrie 2008 10:53:53 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include <stdio.h>
# define n 1999999973
long long put(long long N, long long P)
{
long p;
if (N==1) return N%n;
else if(N%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;
}