Cod sursa(job #1576216)
Utilizator | Data | 22 ianuarie 2016 10:55:14 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <cstdio>
using namespace std;
FILE *f,*g;
int main ()
{
f=fopen("lgput.in","r");
g=fopen("lgput.out","w");
long long n,p;
fscanf(f,"%lld %lld",&n,&p);
long long var;
long long putere=1;
int aux=1999999973;
while (p>0)
{
if (p&1)
{
putere=(putere*n)%aux;
p--;
}
n=(n*n)%aux;
p>>=1;
}
fprintf(g,"%lld",putere);
fclose(f);
fclose(g);
return 0;
}