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