Cod sursa(job #849143)
Utilizator | Data | 6 ianuarie 2013 16:14:08 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.39 kb |
#include<cstdio>
#include<cstdlib>
int main()
{
unsigned int n,p,m=1999999973,i;
long long x, rez = 1;
FILE *f=fopen("lgput.in","r"),*g=fopen("lgput.out","w");
fscanf(f,"%d %d",&n,&p);
x = n;
for(i=0;(1<<i)<=p;++i)
{
if(((1<<i)&p)>0)
rez=(rez*x)%m;
x=(x*x)%m;
}
fprintf(g,"%lld\n",rez);
fclose(f);fclose(g);
}