Cod sursa(job #146513)
Utilizator | Data | 1 martie 2008 20:45:58 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.43 kb |
#define c 1999999973
#include<stdio.h>
FILE*f=fopen("lgput.in","r");
FILE*g=fopen("lgput.out","w");
long long a,b,x,aux;
int main()
{
fscanf(f,"%lld %lld",&a,&b);
long long exp=1;
while(b)
{
if(b%2==0) { a=(a*a)%c; b/=2;}
else {exp=(exp*a)%c; b--;}
}
fprintf(g,"%lld\n",exp);
return 0;
}