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

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

x &A  ⁄= 0 →  (x&10 =  0 →  x&5 ⁄=  0)

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

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

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

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