Cod sursa(job #1601315)
Utilizator | Data | 15 februarie 2016 20:59:31 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
Program puterelog;
var x,p,r:qword;
f1,f2:text;
begin
assign(f1,'lgput.in'); reset(f1);
assign(f2,'lgput.out'); rewrite(f2);
read(f1,x,p);
r:=1;
if p mod 2=1 then
begin
r:=(r*x) mod 1999999973;
p:=p-1;
end;
while p>1 do
begin
x:=(x*x) mod 1999999973;
p:=p div 2;
end;
if p mod 2=1 then
r:=(r*x) mod 1999999973;
write(f2,x);
close(f1);
close(f2);
end.