Cod sursa(job #166633)
Utilizator | Data | 28 martie 2008 11:20:28 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
var a,b:int64;
f,g:text;
function put(a,b:int64):int64;
var r:qword;
begin
if b=0 then put:=1
else
if b and 1=1 then
put:=(a*put(a,b-1)) mod 1999999973
else begin
r:=put(a,b shr 1);
put:=(r*r) mod 1999999973;
end;
end;
begin
assign(f,'lgput.in'); reset(f);
assign(g,'lgput.out'); rewrite(g);
read(f,a,b);
writeln(g,put(a,b));
close(f); close(g);
end.