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