Cod sursa(job #629089)
Utilizator | Data | 2 noiembrie 2011 17:13:15 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include <stdio.h>
int main(void)
{
FILE *f,*g;
long long p,s=1,n;
f=fopen("lgput.in","r");
g=fopen("lgput.out","w");
fscanf(f,"%lld %lld",&n,&p);
while(p)
if(p%2==0)
{
n=(n*n) % 1999999973;
p=p/2;
}
else
{
s=(s*n) % 1999999973;
n=(n*n) % 1999999973;
p=p/2;
}
fprintf(g,"%lld",s);
return 0;
}