Pagini recente » Cod sursa (job #1818402) | Cod sursa (job #209301) | Cod sursa (job #2208220) | Cod sursa (job #2955591) | Cod sursa (job #973617)
Cod sursa(job #973617)
#include<stdio.h>
#include<math.h>
FILE *Fin=fopen("lgput.in","r"), *Fout=fopen("lgput.out","w");
long long a,b,p=1999999973;
long long f;
long long exp(long long x, long long n)
{
if(n<0)
return exp(1/x,-n);
else
if(n==0)
return 1;
else
if(n==1)
return x;
else
if(n%2==0)
return (exp(x*x,n/2))%p;
else
return x%p*exp(x*x,(n-1)/2)%p;
}
/*
int main ()
{
fscanf(Fin,"%d",&x);
fscanf(Fin,"%d",&p);
if(p%2==1 && p>2)
a=x*(long long)pow(x*x,(p-1)/2);
else
if(p!=0)
a=(long long)pow((x*x),(p/2));
if(x<y)
fprintf(Fout,"%lld",a);
//printf("%lld",a);
else
fprintf(Fout,"%lld",a%y);
fclose(Fin);
fclose(Fout);
return 0;
}
*/
int main(){
fscanf(Fin,"%lld%lld",&a,&b);
f = exp(a,b);
fprintf(Fout,"%lld",f);
return 0;
}