Cod sursa(job #1581641)
| Utilizator | Data | 26 ianuarie 2016 23:13:18 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.73 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) mod 1999999973
else
begin
ra:=putere(nr,pow div 2);
putere:=sqr(ra) mod 1999999973;
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));
close(f);
end.