Ответ написан в файле.
Через логическую связку and и or не получится проверял. Только построчно.
begin
var a := ArrRandom(16, -20, 20); a.Println;
a.Numerate(0).Where(x -> x[1].isEven)
.Select(x -> x[0]).Println;
end.
89
берём 64 Это 2^6 степени
89-64=25 (1)
25-32 не надо (0)
25-16=9 (1)
9-8=1 (1)
1-4 не надо (0)
1-2 не надо (0)
1-1=0 (1)
Теперь считает единицы и нули сверху вниз
1011001
600
берём 512 это 2^9 степени
600-512=88(1)
88-256 не надо (0)
88-128 не надо (0)
88-64= 24 (1)
24-32 не надо (0)
24-16= 8 (1)
8-8=0(1)
0-4 не надо (0)
0-2 не надо (0)
0-1 не надо (0)
опять считаем 1001011000
2010 берём 1024 это 2^10 степени
2010-1024=986(1)
986-512= 474(1)
474-256=218(1)
218-128=90(1)
90-64=26(1)
26-32 не надо (0)
26-16=10(1)
10-8=2(1)
2-4 не надо (0)
2-2=0 (1)
0-1 не надо (0)
считаем
11111011010
считал в основном устно, мог ошибиться. Но главное, чтоб принцип был понятен
Метод-координат.
вот твой вопрос???
............