Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m»; пусть на числовой прямой дан отрезок
B = [70; 90].
Для какого наибольшего натурального числа A логическое выражение
ДЕЛ(x, A) ∨ ((x ∈ B) → ¬ДЕЛ(x, 22))
истинно (т.е. принимает значение 1) при любом целом положительном значении переменной x?
Ответ:
Демонстрационный вариант ЕГЭ 2027 по информатике – задание №15
Решение:
Решение —
Переберём возможные значения A и проверим, при каких из них логическое выражение истинно для всех положительных целых значений x.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
b = list(range(70, 91)) for a in range(1, 1000): flag = True for x in range(1, 1000): if ((x % a == 0) or ((x in b) <= (x % 22 != 0))) == False: flag = False if flag == True: print(a) |
Список
|
1 |
b = list(range(70, 91)) |
задаёт все целые числа от 70 до 90 включительно, то есть отрезок B = [70; 90].
Условие
|
1 |
x % a == 0 |
соответствует выражению ДЕЛ(x, A).
Условие
|
1 |
(x in b) <= (x % 22 != 0) |
соответствует импликации
(x ∈ B) → ¬ДЕЛ(x, 22).
Программа выводит все значения A, при которых исходное выражение истинно для всех проверяемых значений x.
Получаем:
|
1 2 3 4 5 6 7 8 |
1 2 4 8 11 22 44 88 |
Следовательно, наибольшее подходящее значение:
A = 88
Это можно увидеть и без перебора: импликация ложна только тогда, когда x ∈ [70; 90] и при этом x делится на 22. В данном отрезке единственное такое число — 88. Поэтому, чтобы всё выражение оставалось истинным, число 88 должно делиться на A. Наибольший возможный делитель 88 — само число 88.
Ответ: 88