ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 10104. Типовая задача

Сеть задана IP-адресом 191.239.130.3 и маской сети 255.255.А.0, где А – некоторое допустимое для записи маски число.

Определите минимальное значение А, для которого для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество единиц в левых двух байтах не менее суммарного количества единиц в правых двух байтах.

В ответе укажите только число.

from ipaddress import ip_network, ip_address

ip_net = ip_address('191.239.130.3')

for mask in range(16, 24):
    net = ip_network(f'{ip_net}/{mask}', False)

    if all(f'{int(ip):032b}'[:16].count('1') >=
           f'{int(ip):032b}'[16:].count('1')
           for ip in net):
        res_mask = str(net.netmask).split('.')
        print(res_mask[2])
        break
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие