Cod sursa(job #1413220)

Utilizator Stefan.Andras Stefan Stefan. Data 1 aprilie 2015 18:57:23
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.63 kb
program ridicare_log;
const modulo = 1999999973;
var f,g:text;
    n,p,sol:int64;
    bufin,bufout:array[1..1 shl 17] of char;
begin
        assign(f,'lgput.in'); reset(f);
        assign(g,'lgput.out'); rewrite(g);
        settextbuf(f,bufin); settextbuf(f,bufout);
        readln(f,n,p);
        n := n mod modulo;
        sol := 1;
        while p > 0 do
                begin
                  if p mod 2 = 1 then sol := (sol mod modulo) * (n mod modulo);
                  n := (n mod modulo) * (n mod modulo);
                  p := p div 2;
                end;
        writeln(g,sol);
        close(f); close(g);
end.