Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m».
Пусть на числовой прямой дан отрезок B = [70; 90].
Для какого наибольшего натурального числа A логическое выражение
ДЕЛ(x, A) ∨ ((x ∈ B) → ¬ДЕЛ(x, 16))
истинно (т.е. принимает значение 1) при любом целом положительном значении переменной x?
Решение
Шаг 1. Функция ДЕЛ(n, m)
def DEL(n, m):
return n % m == 0
Определяем проверку делимости: натуральное n делится на m без остатка.
Шаг 2. Перебор кандидата A
for A in range(1, 3001):
ok = True
Перебираем натуральные A в допустимых пределах из условия.
Шаг 3. Проверка тождественной истинности формулы
for x in range(1, 3001):
if not (DEL(x, 25) <= ((not DEL(x, A)) <= (not DEL(x, 60)))):
ok = False
break
Для каждого x проверяем формулу из условия.
Если хотя бы для одного x формула ложна — этот A не подходит.
Шаг 4. Выбор наибольшего подходящего A
if ok:
best = A
print(best)
Запоминаем наибольшее A, при котором формула тождественно истинна. Ответ: 80.