Cod sursa(job #166294)

Utilizator philip_dugalleHadczy-Pop Filip philip_dugalle Data 27 martie 2008 20:04:42
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.56 kb
var f,g:text;
    n,p,x:int64;

procedure citire;
  begin
    assign(f,'lgput.in');
    reset(f);
    readln(f,n,p);
  end;

function putere(n,p:int64):int64;
  begin
    if p=0 then begin putere:=1; exit; end;
    if p mod 2=1 then putere:=((n*putere(n*n mod 1999999973,(p-1) div 2) )mod 1999999973)
    else putere:=(putere(n*n mod 1999999973,p div 2) mod 1999999973);
  end;

procedure afisare;
  begin
    assign(g,'lgput.out');
    rewrite(g);
    write(g,putere(n,p) mod 1999999973);
    close(g);
  end;

begin
  citire;
  afisare;
end.