Для всех делителей натуральных N - и положительных и отрицательных:
uses math,crt;
var i, j, k, l, m: longint;
N: int64;
d: array of int64;
begin
clrscr();
write('N: ');
readln(N);
k := 0;
m := floor(sqrt(N));
for i := 1 to m-1 do
begin
if N mod i = 0 then
begin
k := k + 2;
setlength(d, k);
d[k - 2] := i;
d[k - 1] := N div i
end
end;
if m * m = N then
begin
k := k + 1;
setlength(d, k);
d[k - 1] := m
end;
for i := 1 to k - 1 do
for j := k - 1 downto i do
if d[j - 1] > d[j] then
begin
l := d[j - 1];
d[j - 1] := d[j];
d[j] := l
end;
for i := 0 to k - 1 do
writeln(i + 1, ') ±', d[i])
end.
