Cod sursa(job #1537199)
| Utilizator | Data | 27 noiembrie 2015 00:00:04 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <stdio.h>
#include <stdlib.h>
#define X 1999999973
int exp (long long a,long long b)
{
if (b==0)
{
return 1;
}
if (b%2!=0)
{
return ((a%X)*(exp((a%X)*(a%X),(b-1)/2)%X))%X;
}
return exp((a%X)*(a%X),b/2)%X;
}
int main()
{
FILE *fin,*fout;
fin=fopen ("lgput.in","r");
fout=fopen ("lgput.out","w");
long long N,P;
fscanf (fin,"%lld",&N);
fscanf (fin,"%lld",&P);
fprintf (fout,"%lld\n",exp(N,P)%X);
fclose (fin);
fclose (fout);
return 0;
}
