Cod sursa(job #158600)
Utilizator | Data | 13 martie 2008 18:31:51 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.37 kb |
#include <stdio.h>
#include <string.h>
#include<math.h>
#define m 1999999973
int main()
{
unsigned int n, p,i;
long long s,v;
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%d %d", &n, &p);v=n;
for(i=1;i<=p;i<<=1)
{if(i&p) s=(s*v)%m;
v=(v*v)%m; }
printf("%lld\n", s);
return 0;
}