Pagini recente » Cod sursa (job #886777) | Cod sursa (job #913988) | Cod sursa (job #2612335) | Cod sursa (job #215915) | Cod sursa (job #216286)
Cod sursa(job #216286)
#include<stdio.h>
#define modulo 1999999973
long long n,p;
long long putere(long long n, long long p, long long r)
{
if(!p) return 1; //returnam 1 deoarece orice numar la puterea 0 este 1
if(p%2) //daca exponentul este impar
return (n*putere(n,p-1,r))%r; //returnam restul impartirii n*n^(p-1) la r
//p este un numar par
long long x;
x=putere(n,p/2,r); //x primeste restul impartirii n^(p/2) la r
return (x*x)%r; //returnam restul lui x*x la r, adica restul impartirii (n^(p/2))^2 la r
}
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld %lld",&n,&p);
printf("%lld",putere(n,p,modulo));
fclose(stdin);
fclose(stdout);
return 0;
}