Pagini recente » Cod sursa (job #1731111) | Cod sursa (job #490205) | Cod sursa (job #857659) | Cod sursa (job #1323615) | Cod sursa (job #3135880)
#include <stdio.h>
#include <stdlib.h>
#define modulo 1999999973
void citire( const char* path, int * x,int *n)
{
FILE *f;
if((f=fopen(path,"r"))==NULL)
{
printf("eroare la citire");
exit(-1);
}
fscanf(f,"%d%d",x,n);
fclose(f);
}
long long exp(int x,int n)
{
if(n==0)
return 1;
if(n%2==1)
return x*exp(x*x,n/2);
if(n%2==0)
return exp(x*x,n/2);
}
void scriere(const char* path,long long p)
{
FILE *f;
if((f=fopen(path,"w"))==NULL)
{
printf("eroare la scriere");
exit(-1);
}
fprintf(f,"%d\n",p);
fclose(f);
}
int main(void)
{
int x,n;
citire("lgput.in.txt",&x,&n);
long long power=exp(x,n)%modulo;
scriere("lgput.out.txt",power);
return 0;
}