Pagini recente » Cod sursa (job #969122) | Cod sursa (job #2931968) | Cod sursa (job #664256) | Cod sursa (job #1425183) | Cod sursa (job #3134436)
#include <stdio.h>
#include <stdlib.h>
#define REST 1999999973
double exp_log_rec(double N, int P)
{
if(P < 0)
{
return exp_log_rec(1.0 / N, -P);
}
else if(P == 0)
{
return 1;
}
else if(P % 2 == 0)
{
return exp_log_rec(N*N, P/2);
}
else if(P % 2 == 1)
{
return N * exp_log_rec(N*N, P/2);
}
return 0;
}
int main(void)
{
double aux, result;
unsigned int N, P;
int long long sol;
FILE *fin;
FILE *fout;
if((fin = fopen("lgput.in","r"))==NULL)
{
printf("Eroare deschidere fisier\n");
exit(-1);
}
if((fout = fopen("lgput.out","w"))==NULL)
{
printf("Eroare deschidere fisier\n");
exit(-1);
}
fscanf(fin,"%d %d", &N, &P);
aux = N;
result = exp_log_rec(aux, P);
sol = result;
sol = sol % REST;
fprintf(fout,"%lld\n", sol);
fclose(fin);
fclose(fout);
return 0;
}