Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа А формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Решение руками:
Введем обозначения:
Таким образом истиным для всех должно быть выражение
.Упростим это выражение, раскрыв импликацию:
.
Из этой формулы видно, что множество должно перекрыть множество, которое не перекрыто множеством
. Множество
– это множество всех чисел, которые не делятся одновлеменно на 14 и 21. Поэтому чтобы найти наименьшее
необходимо найти наименьшее общее кратное чисел 14 и 21 – это 42.
Решение программой:
for a in range(1, 1500):
# Переменная-флаг,
# которой присваивается 1, если хотя бы одно выражение выдаёт ложь
f = 0
for x in range(1, 5000):
# Если выражение ложно(нам нужны только истинные),
# то приостанавливаем цикл
if ((x % a == 0) <= ((x % 14 == 0) and (x % 21 == 0))) == False:
f = 1
break
# Так как ищем минимальное значение,
# то сразу же после его нахождения прерываем цикл
if f == 0:
print(a)
break
Получаем ответ: