Cod sursa(job #1094728)
Utilizator | Foloba Anca Bumpilici | Data | 29 ianuarie 2014 19:34:18 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
/*
Dandu-se doua numere naturale N si P, se cere sa se calculeze restul impartirii lui NP la 1999999973.
lgput.in
2 4
lgput.out
16
*/
#include<cstdio>
long long n;
long long p;
long long sol=1;
const int MOD=1999999973;
int main()
{
FILE *f=fopen("lgput.in","r");
FILE *g=fopen("lgput.out","w");
fscanf (f,"%ld%ld",&n,&p);
for(int i=0;(1<<i)<=p;i++)
{
if (((1<<i)&p)>0) sol=(sol*n)%MOD;
n=n*n%MOD;
}
fprintf(g,"%ld",sol);
fclose(f);
fclose(g);
return 0;
}