Cod sursa(job #1200894)

Utilizator cojocarugabiReality cojocarugabi Data 23 iunie 2014 19:51:31
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.65 kb
var x,y:  int64;
    i,j:longint;
  fi,fo:   text;
    function putere(x,y:longint):longint;
     var p,i:longint;
      begin
       if y=0 then begin
            putere:=1;exit;
       end;
       p:=x;
       i:=1;
       while (i*2<=y) do begin
         p:=p*p mod 1999999973;
         i:=i*2;
       end;
       p:=p*putere(x,y-i) mod 1999999973;
       putere:=p;
      end;
         begin
          assign(fi,'lgput.in');
          assign(fo,'lgput.out');
          reset(fi);
          rewrite(fo);
          readln(fi,x,y);
          writeln(fo,putere(x,y)mod 1999999973);
          close(fo);
          close(fi);
         end.