uses crt;
var n,i,m:integer;
c,kd,kc,f:byte;
begin
clrscr;
repeat
write('Введите число до 9999 n=');{болше некрасивый вывод и на экран не входят}
readln(n);
until (n>0)and(n<10000);
writeln('Числа делятся на все свои цифры:');
for i:=1 to n do
begin
m:=i;
kd:=0;
kc:=0;
while m>0 do
begin
c:=m mod 10;{цифры}
kc:=kc+1;{их общее количество}
if(c<>0)and(i mod c=0)then{если цифра не ноль и делит}
kd:=kd+1;{количество делителей}
m:=m div 10;
end;
if kd=kc then write(i:5);
end;
readln
end.
Следующий вариант
uses crt;
function DelCif(x:longint):boolean;
var y:longint;
k:byte;
begin
y:=x;
while y<>0 do
begin
k:=y mod 10;
if (k=0)or(x mod k<>0)then
begin
DelCif:=false;
break;
end;
y:=y div 10;
end;
end;
var n,i,k:longint;
begin
clrscr;
write('Введите N=');
readln(n);
writeln('Числа делятся на все свои цифры:');
for i:=1 to n do
if DelCif(i)then
begin
write(i:5);
k:=k+1;
end;
readln;
end.