Cod sursa(job #406519)
| Utilizator | Data | 1 martie 2010 16:37:55 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 50 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
program hatvanyoz;
const maradek = 1999999973;
var n,p:qword;
ki,be:text;
function hatvanyoz(hatvany:qword):qword;
var x:qword;
begin
if hatvany=1 then
begin
hatvanyoz:=n;
exit;
end;
x:=hatvanyoz(hatvany div 2);
if odd(hatvany) then
hatvanyoz:=(x*x*n) mod maradek
else
hatvanyoz:=(x*x) mod maradek;
end;
begin
assign(be,'lgput.in');
assign(ki,'lgput.out');
reset(be);
rewrite(ki);
readln(be,n,p);
writeln(ki,hatvanyoz(p));
close(ki);
end.
