[Mira esto a ver si ayuda ]
program multiplos;
uses
crt;
var
numero, inicio, cuantos, contador : integer;
alantatras : char;
arraynum : array[1..100] of integer;
procedure numeros_multiplos(n : integer);
var
e, ep : integer;
begin
contador := 0;
e := 1;
for ep := 1 to n do
if n mod ep = 0 then
begin
arraynum[e] := ep;
e := e + 1;
end;
contador := e;
end;
procedure presenta(nm, des, cuan : integer; direc : char);
var
ss, cc, gg, tt : integer;
begin
numeros_multiplos(nm);
gg := 1;
if direc = 'D' then
begin
if contador > des then
begin
cc := contador;
ss := des;
end
else
begin
cc := des;
ss := contador;
end;
for tt := ss to cc do
begin
if arraynum[tt] > 0 then
begin
write(' ',arraynum[tt]);
gg := gg + 1;
end;
if gg > cuan then
break;
end;
end;
if direc = 'I' then
begin
for tt := des downto 1 do
begin
if arraynum[tt] > 0 then
begin
write(' ',arraynum[tt]);
gg := gg + 1;
end;
if gg > cuan then
break;
end;
end;
end;
begin
clrscr;
presenta(72,10,5,'D');
readkey;
end.