Cod sursa(job #3299456)
Utilizator | Data | 6 iunie 2025 17:14:48 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | c-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include<stdio.h>
#include<stdint.h>
uint32_t power(uint32_t n,uint32_t p)
{
if(p==0)
return 1;
uint32_t aux=power(n,p/2);
uint64_t par=(uint64_t)aux*aux;
uint64_t impar=(uint64_t)(n%1999999973)*(par%1999999973);
if(p%2)
return impar%1999999973;
return par%1999999973;
}
int main()
{
uint32_t n,p;
FILE *in,*out;
in=fopen("lgput.in","r");
out=fopen("lgput.out","w");
fscanf(in,"%d %d",&n,&p);
fprintf(out,"%d\n",power(n,p));
fclose(in);
fclose(out);
return 0;
}