Cod sursa(job #730130)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 4 aprilie 2012 20:25:15
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.46 kb
Program ridicare_timp_log;
var n,a,p : int64;
    fi,fo : text;
begin
    assign(fi,'lgput.in'); reset(fi); assign(fo,'lgput.out'); rewrite(fo);
    read(fi,a,n); p:=1;
    while n<>0 do begin
                   if n mod 2= 1 then begin p:=(p*a) mod 1999999973; a:=(a*a) mod 1999999973; end
                                 else a:=(a*a) mod 1999999973;
                   n:=n div 2;
                   end;
    write(fo,p);
    close(fi); close(fo);
end.