Cod sursa(job #380642)

Utilizator juniorOvidiu Rosca junior Data 7 ianuarie 2010 07:55:03
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.41 kb
const
  m = 1999999973;
var
  fi, fo : text;
  n, p : longint;
  r, putere : int64;
begin
  assign (fi, 'lgput.in'); reset (fi);
  assign (fo, 'lgput.out'); rewrite (fo);
  read (fi, n, p);
  putere := n; r := 1;
  while p > 0 do
    begin
      if odd (p) then
        r := r*putere mod m;
      putere := putere*putere mod m;
      p := p shr 1;
    end;
  write (fo, r);
  close (fi); close (fo);
end.