Все задачи №10
№10

Наименьшее A

Сеть задана IP-адресом 172.16.A.0 и маской 255.255.255.240, где A это число от 0 до 255. При каком наименьшем A каждый IP-адрес этой сети содержит в двоичной записи не менее 11 единиц?

Учебная задача

Ответвпиши то, что вывела программа
Показать разбор
  1. Перебирай A от 0 до 255 по возрастанию.
  2. Для каждого A создай сеть, подставив A в адрес через f-строку.
  3. Функцией all проверь, что у каждого адреса сети не меньше 11 единиц.
  4. На первом подошедшем A выведи его и останови цикл.
from ipaddress import ip_network

for A in range(0, 256):
    net = ip_network(f'172.16.{A}.0/255.255.255.240')
    if all(f'{ip:b}'.count('1') >= 11 for ip in net):
        print(A)
        break