Все задачи №15
№15

Делимость, наименьшее A

Обозначим ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа A формула ДЕЛ(x, A) → (ДЕЛ(x, 18) ∨ ¬ДЕЛ(x, 24)) тождественно истинна при любом натуральном значении переменной x?

Учебная задача

Ответвпиши то, что вывела программа
Показать разбор
  1. Напиши функцию d(n, m): делится ли n на m без остатка.
  2. Перепиши формулу в функцию f(x, A): → это <=, ¬ это not, каждую импликацию бери в скобки.
  3. Перебирай A и оставляй те, при которых all(f(x, A)) истинно для всех x от 1 до 1999.
  4. Нужно наименьшее A, поэтому возьми min и выведи результат.
def d(n, m):
    return n % m == 0

def f(x, A):
    return d(x, A) <= (d(x, 18) or (not d(x, 24)))

print(min(A for A in range(1, 200) if all(f(x, A) for x in range(1, 2000))))