uses crt;
type
Mn = set of 0 .. 9; { тип множество цифр }
var
n, a: longint;
i, k: byte;
b: Mn; { переменная этого типа }
begin
clrscr;
write('Vvedite naturalnoe chislo N=');
readln(n);
b := []; { множество пока пустое }
while n > 0 do { пока число больше ноля }
begin
a := n mod 10; { отделяем по одной цифре с конца }
if not(a in b) then { если ее нет еще в множестве }
begin
include(b, a); { вставляем }
k := k + 1; { считаем }
end;
n := n div 10; { берем число без последней цифры и все повторяем }
end;
writeln('Kolichestvo raznyh cifr v chisle N=', k);
writeln('V chislo ne vhodyat cifry:');
for i := 0 to 9 do { проверяем цифры от 0 до 9 }
if not(i in b) then { если цифры нет в множестве }
write(i, ' '); { выводим }
readln
end.