если числа изначально в 10 системе:
array = list(map(int, input().split())); res = 0; res1 = 0 #ввод и переменные
for i in array:
if len(bin(i)[2:]) == 4: res += i; res1 += 1 #пробегаемся по массиву и смотрим подходит ли элемент в двоичном представлении
try:
print(res / res1) #если не было подходящих будет деление на 0, поэтому я использовал try except
except: print(0) #ну если все же подходящих не было выводим 0
если уже в 2:
array = list(map(int, input().split())); res = 0; res1 = 0
for i in array:
if len(str(i)) == 4: res += i; res1 += 1
try:
print(res / res1)
except: print(0)
Вроде бы как-то так
PascalABC.NET
function IsPrime(number:integer):boolean;
begin
if number = 1 then IsPrime := True
else begin
for var i:= 2 to trunc(sqrt(number)) do begin
if number mod i = 0 then IsPrime := False
else IsPrime := True;
end;
end;
end;
begin
var numbers := Range(0, ReadInteger());
numbers.Println;
numbers.Where(p -> IsPrime(p)).count.Println;
numbers.Where(p -> (p mod 3 = 0) and (p mod 2 <> 0)).Count.Println;
end.
Возможно можно сделать ещё проще, но проверять число на простоту я придумал только самостоятельно реализованной функцией, по этому многабукаф