Может быть несколько подходов к решению задачи. Один из них – разделить число на цифры, помечая в массиве встречались ли такие цифры ранее. Если цифра встречается в первый раз, то нужно увеличить переменную-результат.
var
n, r: integer;
a: array [0..9] of boolean;
begin
assign(input, 'input.txt');
reset(input);
assign(output, 'output.txt');
rewrite(output);
readln(n);
while (n > 0) do begin
if not a[n mod 10] then begin
a[n mod 10]:=true;
inc(r);
end;
n := n div 10;
end;
writeln(r);
end.
var
n, r: integer;
a: array [0..9] of boolean;
begin
assign(input, 'input.txt');
reset(input);
assign(output, 'output.txt');
rewrite(output);
readln(n);
while (n > 0) do begin
if not a[n mod 10] then begin
a[n mod 10]:=true;
inc(r);
end;
n := n div 10;
end;
writeln(r);
end.