Cod sursa(job #2272164)
| Utilizator | Data | 29 octombrie 2018 19:29:12 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include <stdio.h>
unsigned int fast_multiply(unsigned int n, unsigned int p)
{
unsigned r = 1;
for (int i=31;i>=0;i--)
{
unsigned int k = p>>i;
if ((k&1)==1)
{
r = (r*n) % 1999999973;
}
else {
r = (r*r) % 1999999973;
}
}
}
int main()
{
FILE *inptr = fopen("logput.in","r");
FILE *outptr = fopen("logput.out","w");
unsigned int n=0,p=0;
fscanf(inptr,"%d %d", &n, &p);
fprintf(outptr,"%d", fast_multiply(n,p));
return 0;
}
