Cod sursa(job #490480)
| Utilizator | Data | 6 octombrie 2010 17:49:28 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.38 kb |
#include <stdio.h>
#include <string.h>
#define nmax 10001
#define m 1999999973
FILE *f,*g;
int main(){
long long a,sol=1;
long i,n,p;
f=fopen("lgput.in","r");
fscanf(f,"%ld %ld",&n,&p);
fclose(f);
a=n;
for (i=0;(1<<i)<=p;i++)
{
if (((1<<i)&p)>0)
sol=(sol*a)%m;
a=(a*a)%m;
}
g=fopen("lgput.out","w");
fprintf(g,"%lld\n",sol);
fclose(g);
return 0;
}
