Cod sursa(job #159838)
Utilizator | Data | 14 martie 2008 14:16:15 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <stdio.h>
#define K 1999999973
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
int n,p,i;
long long x=0,rez=0;
scanf("%d%d",&n,&p);
x=n; rez=1;
for (i=0; (1<<i) <= p; ++i)
{
if ((1<<i) & p)
rez=(rez*x)%K;
x=(x*x)%K;
}
printf("%lld\n",rez);
fclose(stdin);
fclose(stdout);
return 0;
}