Cod sursa(job #3357056)
| Utilizator | Data | 5 iunie 2026 15:45:35 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.4 kb |
#include <stdio.h>
int explog(int x, int n) {
int sol = 1;
if (n == 0)
return 1;
for(int i = 0; (1<<i) <= n; ++i) {
if(((1<<i)&n) > 0)
sol *= x;
x *=x;
}
return sol;
}
int main(void) {
FILE *in = fopen("lgput.in", "r");
FILE *out = fopen("lgput.out", "w");
int n, p, rst = 1999999973;
fscanf(in, "%d %d", &n, &p);
fprintf(out, "%d", (explog(n, p)) % rst);
return 0;
}
