Cod sursa(job #181568)

Utilizator tamas_iuliaTamas Iulia tamas_iulia Data 18 aprilie 2008 15:55:26
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.44 kb
{ridicare la putere in timp logaritmic }
var x,n,rez : int64;
    f,g : text;
procedure power(x,n : int64);
begin
  rez:=1;
  while n<>0 do
  if n mod 2=1 then
  begin
    rez:=(rez*x) mod 1999999973;
    dec(n);
  end
  else
  begin
    x:=(x*x)mod 1999999973;
    n:=n div 2;
  end;
end;

begin
  assign(f,'lgput.in');reset(f);
  assign(g,'lgput.out');rewrite(g);
  read(f,x,n);
  power(x,n);
  writeln(g,rez);
  close(g);
end.