Алгоритм решения задания 15. Часть 3
Учимся решать 15 задания третьего типа
Читать
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m».
Пусть на числовой прямой дан отрезок B = [70, 90].
Для какого наибольшего натурального числа А логическое выражение ДЕЛ(x, А) ∨ ((x ∈ B) → ¬ДЕЛ(x, 22)) истинно (т.е. принимает значение 1) при любом целом положительном значении переменной х?
Правильный ответ:
88
from itertools import combinations
B = frozenset(range(70, 91))
def f(x, A):
return (x % A == 0) or ((x in B) <= (x % 22 != 0))
for A in range(1, 100)[::-1]:
if all(f(x, A) for x in range(1, 100)[::-1]):
print(A)
break
