Cod sursa(job #166273)

Utilizator philip_dugalleHadczy-Pop Filip philip_dugalle Data 27 martie 2008 19:39:34
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.44 kb
var f,g:text;
    n,p,x:longint;

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

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

begin
  citire;
  if p=0 then x:=1;
  x:=putere(n,p);
  writeln(x);
  readln;
end.