Cod sursa(job #1581638)

Utilizator DoubleNyNinicu Cristian DoubleNy Data 26 ianuarie 2016 23:09:23
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.71 kb
program ooo;
 var n,p:int64;
     f:text;

function putere(nr,pow:int64):int64;
 var ra:int64;
   begin
     if pow=0 then putere:=1
     else if pow=1 then putere:=nr
          else if nr=0 then putere:=0
               else
                 begin
                     if odd(pow) then putere:=(putere(nr,pow-1))*nr
                     else
                       begin
                         ra:=putere(nr,pow div 2);
                        putere:=sqr(ra);
                       end;
                 end;
   end;
begin
    assign(f,'lgput.in');
    reset(f);
    read(f,n,p);
    close(f);
    assign(f,'lgput.out');
    rewrite(f);
    write(f,putere(n,p) mod 1999999973);
    close(f);
end.