Pagini recente » Cod sursa (job #2570195) | Cod sursa (job #217950) | Cod sursa (job #938661) | Cod sursa (job #1195607) | Cod sursa (job #1479364)
#include <stdio.h>
#include <stdlib.h>
const int N = 1999999973;
/**
This function computes n^p in logarithmic time
**/
long long int exponent(long long int n, long long int p) {
if( p < 0 ) {
return exponent( 1/n , -p );
}
if( p == 0) {
return 1;
} else if( p == 1 ) {
return n;
} else if( p % 2 == 0 ) { //p is even
return exponent( n*n , p/2 );
} else {
return n * exponent( n*n , (p-1)/2 );
}
}
int main(void) {
FILE *fin,*fout;
int n,p;
fin=fopen("lgput.in","r");
fout=fopen("lgput.out","w");
fscanf(fin,"%d",&n);
fscanf(fin,"%d",&p);
long long int rez = exponent(n,p);
fprintf(fout,"%lld",rez%N);
return 0;
}