Информатика в школе и дома: ОГЭ, ЕГЭ и ДэРэ
1,1K подписчиков • 683 просмотра • 6 месяцев назад

Разберём огонь-задачу автора А. Минака № 6906 с сайта Полякова типа заданий ЕГЭ п информатике №13 про количество Ip-узлов. Числа Мерсенна😀

Разберём огонь-задачу автора А. Минака № 6906 с сайта Полякова типа заданий ЕГЭ п информатике №13 про количество Ip-узлов. Числа Мерсенна😀

(№ 6906) (А. Минак) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом 139.75.100.0 и маской сети 255.255.252.0. Сколько в этой сети IP-адресов, у которых в последнем (правом) байте двоичной записи IP-адреса записано число Мерсенна, т. е. число вида 2n – 1, где n – натуральное число.

Код:

ip = (139 << 24) + (75 << 16) + (100<< 8) + 0
mask = (255 << 24) + (255 << 16) + (252<< 8) + 0
print(bin(ip)[2:].zfill(32))
print(bin(mask)[2:].zfill(32))
k = 0
for x in range(1,256):
  for n in range(100):
    if x == 2**n - 1:
      k+=1
      print(k, x)
print(k)