Cod sursa(job #149551)
Utilizator | alexandru andronache alex23 | Data | 5 martie 2008 20:46:34 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <stdio.h>
int main()
{FILE *fin,*fout;
long long a,n,putere;
fin=fopen("lgput.in","r");
fscanf(fin,"%lld %lld",&a,&n);
fclose(fin);
putere=1;
while (n)
{if (n%2) putere*=a;
if (putere>=1999999973) putere=putere%1999999973;
n=n/2;
a=a*a;
//if (a>=1999999973) a=a%1999999973;
}
fout=fopen("lgput.out","w");
fprintf(fout,"%lld",putere);
fclose(fout);
return 0;
}