Задача к ЕГЭ по информатике на тему «побитовая конъюнкция» №3

Обозначим через m &n  поразрядную конъюнкцию неотрицательных целых чисел m  и n  .

Так, например, 14&5  = 11102 &01012 =  01002 = 4  .

Для какого наибольшего целого числа A  формула

x &A  ⁄= 0 →  (x&14 =  0 →  x&3 ⁄=  0)

тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной x  )?

Решение программой:

def f(a):
    # если отрицание формулы возвращает истину,
    # то сама формула возвращает ложь
    for x in range(1000):
        if not((x & a != 0) <= ((x & 14 == 0) <= (x & 3 != 0))):
            return False
    return True

for a in range(1000, 1, -1):
    if f(a):
        print(a)
        break

Ответ: 15
Оцените статью
Я решу все!