🎯 До ЕГЭ по информатике:
--дней
:
--часов
:
--минут
:
--секунд
15

Логические выражения

Проверка условий для всех x. Поразрядная конъюнкция. Отрезки.

Python
# Базовый
for a in range(1, 1500):
    if all(((x > 56) or (y >= x) or (3*x - y < a))
           for x in range(10000) for y in range(10000)):
        print(a)
        break

# Поразрядная конъюнкция
for a in range(1, 1000):
    if all((x & 47 == 0) or ((x & 13 == 0) <= (x & a != 0))
           for x in range(1000)):
        print(a); break

# ДЕЛ
for a in range(1, 1000):
    if all(((x % 17 != 0) or (x % 12 != 0)) <= (x % a != 0)
           for x in range(1000)):
        print(a); break
Способ 2
# Отрезки
def f(x):
    b = 66 <= x <= 75
    c = 71 <= x <= 85
    a = a1 <= x <= a2
    return (not (a)) <= (b == c)

ox = [y for x in (66,75,71,85) for y in (x, x+0.01, x-0.01)]
m = []
for a1 in ox:
    for a2 in ox:
        if a2 > a1 and all(f(x) == 1 for x in ox):
            m.append(a2 - a1)
print(min(m))  # max — если просят макс. длину

# Тип Крылова 2025
def F(b, c, x):
    A = 3 <= x <= 60
    B = x in b
    C = x in c
    return C <= (A and (not B))
for y in range(1, 10000):
    B = [i for i in range(2, 177) if 177 % i == 0]
    C = [i for i in range(2, y) if y % i == 0]
    if len(C) > 0 and all(F(B, C, x) for x in range(-10000, 10000)):
        print(y)

# Множества
p = [5, 10, 15, 20, 25, 30]
q = [15, 18, 21, 24, 27, 30]
a = list(range(1000))
for x in range(1000):
    if (not((x in p) <= (not(x in q))) and (x in a)) == False:
        a.remove(x)
print(a)

📚 Теория

Логические выражения и кванторы. Проверка на множестве значений.