Repeat
<тело цикла>
until <условие>
это в паскале
0011 010 0000 011 это в десятичном 4
159 13 46 18 это в двоичном 001100010011010100111001001000000011000100110011001000000011010000110110001000000011000100111000
(кстати ты перепутал десятичный и двоичный коды)
Const
<span>n=20; </span>
<span>var a:array[1..n] of integer; </span>
<span>var i,d,s:integer; </span>
<span>begin </span>
<span>s:=0; </span>
<span>writeln('Введите число d'); </span>
<span>readln(d); </span>
<span>writeln('Введите массив'); </span>
<span>for i:=1 to n do begin </span>
<span>read(a[i]); </span>
<span>if a[i] mod d = 0 then s:=s+a[i]; </span>
<span>end; </span>
<span>writeln(s); </span>
<span>end. </span>
{Автор: Рудницкий В. Л.
Ограничения: Последовательность не может быть длинее NN.
Откуда: Олимпиада, KZ, 2016.}
const NN = 10000;
var a : array [1 .. NN] of integer; i, j, d, N: integer;
begin
write('Введите длину массива: '); readln(N);
writeln('Введите массив чисел через пробел:');
for i := 1 to N do read( a[i] );
{ Удаляем повторы чисел }
for i := 1 to N-1 do
for j := i+1 to N do
if a[i] = a[j] then a[j] := 0;
{ Создаем последовательность заполняя не нужные числа нулями }
for i := 2 to N do if ( a[i-1] > a[i] ) and ( a[i] <> 0 ) then a[i] := 0;
{ Суммируем не нулевые элементы }
d := 0; for i := 1 to N do if a[i] <> 0 then d := d + 1;
writeln('Максимальная длинна массива после удалений: ',d);
end.