var
c: set if byte;
i: byte;
n: longint;
begin
Write('Введите натуральное число');
Readln(n);
c:=[];
while n>0 do
begin
c:=c+[n mod 10];
n:=n div 10;
end;
for i:=9 downto 0 do
if i in c then write(i,' ');
end.
Следующий вариант
function countcin(c,n:longint):longint; {число С цифр в числе n}
var
i:longint;
begin
i:=0;
while n>0 do
begin
if n mod 10 = c then
inc(i);
n:=n div 10;
end;
countcin:=i;
end;
{---------------------------------------}
var
n,i,j,p:longint;
m:set of byte;
begin
writeln('Число');
readln(n);
p:=n;
while (n>0) do
begin
include(m,n mod 10);
n:=n div 10;
end;
for i:=9 downto 0 do
if i in m then
for j:=1 to countcin(i,p) do
write(i);
end.