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

Обозначим через m & n  поразрядную конъюнкцию неотрицательных целых чисел m  и n  . Например, 14 & 5 = 11102 & 01012 = 01002 = 4  .

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

(x & 85 = 0) → (x & 54 ⁄= 0 → x & A ⁄= 0)

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

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

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

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

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