Cod sursa(job #1553448)
| Utilizator | Data | 19 decembrie 2015 21:03:57 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include<stdio.h>
#include<stdlib.h>
int logpower(int n, int p)
{
if(p == 0)
return 1;
if(p == 1)
return n;
if( p %2 == 0)
return logpower((n % 1999999973) * (n %1999999973), p/2)%1999999973;
return (n % 1999999973) * logpower((n%1999999973)*(n % 1999999973),(p-1)/2) % 1999999973;
}
int main(void)
{
FILE * fin = fopen("lgput.in","rt");
FILE * fout = fopen("lgput.out","wt");
int n,p;
fscanf(fin,"%d%d",&n,&p);
int rp = logpower(n,p);
fprintf(fout,"%d\n",rp);
fclose(fin);
fclose(fout);
return 0;
}
