===== PascalABC.NET =====
begin
var a := ArrRandom(2019, 1, 15000);
// раскомментировать если не надо выводить исходный массив:
//var k := a.Count(p -> p mod 16 = 10);
// закомментировать, если не надо выводить исходный массив:
var k := a.Println.Count(p -> p mod 16 = 10);
Println('Найдено элементов:', k);
var n := 0;
for var i := 0 to a.High do
if a[i].InRange(8, 63) then
(a[i], n) := (k, n + 1);
a.Println;
Println('Сделано замен:', n)
end.
Объяснение:
Если шестнадцатеричная запись числа заканчивается цифрой A, то остаток от его деления на 16 равен А₁₆ = 10.
Числа, восьмеричная запись которых содержит ровно 2 цифры, лежат в диапазоне [10₈; 77₈] = [8; 63]