Задача к ЕГЭ по информатике на тему «прочие прототипы» №12

Обозначим через ДЕЛ(n  , m  ) утверждение «натуральное число n  делится без остатка на натуральное число m  ».

На числовой прямой дан промежуток A  и множество S = {25,28,45,48,57,67} .

Определите максимальную длину промежутка A  , такого что его правая граница не больше 50  и выражение

                                                                ------- ((¬Д ЕЛ(x,5)∧ (y ∕∈ S)) → ((x > 5) → (y > 13)))∨ (x⋅y ≤ 67)∨(x ∕∈ A)∨ (y ∈ A) » class=»math-display» src=»/images/inform/quest/quest-5640-9.svg» width=»auto»></div>
<p class= тождественно истинно, то есть принимает значение 1  при любых натуральных значениях переменных x  , y  .

def inn(x, A):
    return A[0] <= x <= A[1]

def f(x, y, A):
    S = {25, 28, 45, 48, 57, 67}
    return (((x % 5 != 0) and (not y in S)) <= ((x > 5) <= (y > 13))) 
        or (x * y <= 67) or (not inn(x, A)) or (not inn(y, A))

n = 5
ans = 0
for a in range(1 * n, 50 * n):
    for b in range(a, 50 * n + 1):  # + 1 чтобы проверить саму точку b
        A = [a / n, b / n]
        flag = True
        for x in range(1, 100):
            for y in range(1, 15):
                if not f(x, y, A):
                    flag = False
                    break
            if not flag:
                break
        if flag:
            ans = max(ans, A[1] - A[0])
print(ans)

Видим, что программа выдаёт результат 36.8 – это значит, что ответ стремится к 37.

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