<em>// PascalABC.NET 3.2, сборка 1417 от 28.03.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrRandom(50,-50,50); a.Println;
Writeln('k=',a.Where(x->x.IsEven and (x mod 3<>0)).Count)
end.
<u>Пример</u>
46 39 16 14 -16 -35 -34 -38 5 16 -13 -19 48 18 -33 -37 3 -41 46 38 15 21 50 50 21 -29 -34 4 -31 -18 31 -2 26 45 -8 1 13 29 -35 -46 25 -38 -13 23 14 -17 -30 35 9 -34
k=20
Делите последовательно на 2 и остаток от деления записываете справа налево - получаете двоичное представление числа
40(10) 40/2=20 - остаток = 0
20/2=10 - остаток = 0
10/2=5 - остаток =0
5/2 =2 , остаток = 1
2/2=1 остаток =0
1
если после последнего деления результат меньше 2
то частное записываем в представление
получили биты: 101000 - это и есть двоичное представление числа 40(10)
для числа 8
8/2=4 - остаток 0
4/2 =2 - остаток 0
2/2=1
двоичное представление числа 8(10) 100(2)
так же вычисляете для 54(10) и 9(10)
9(10) = 8(10) + 1 = 100(2) + 1 = 101(2)
54/2=27 ->0
27/2=13 ->1
13/2=6 ->1
6/2=3 -> 0
3/2=1 -> 1
-> 1
двоичное представление числа 54(10)
110110(2) = 54(10)
110110 = 2(в пятой)+2(в четвертой) +2(во второй)+
2(в первой) степенях =32+16+4+2=48+6=54
Странная запись инверсии.
Var x,y:integer;
begin;
readln(x);
if x>0 then
begin;
y:=2*sqr(x)+5;
write(y);
end
else
begin;
y:=7*sqr(x)-5;
write(y);
end;
end.