Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Обозначим через поразрядную конъюнкцию неотрицательных целых чисел
и
.
На числовой прямой даны отрезки и
.
Определите наименьшее натуральное число , такое что выражение
тождественно истинно, то есть принимает значение 1 при любом целом значении переменной х.
Решение 1 (ручками):
Система для врагов:
Раскроем последнее неравенство системы: и
и
. Враги мечтают, чтобы
(в
и в
),
и при этом они не делились на
. Таким образом, чтобы победить, враги будут брать только следующие иксы:
. Также враги мечтают, чтобы
. Максимальный икс, который могут взять друзья, равен
, то есть
, а минимальный икс =
, то есть
. Отсюда заметим, что ни один икс, подходящий врагам, не содержит единичку в пятом с конца разряде в двоичной записи. Тогда мечты врагов такие: «Вот бы у числа
была единичка в первом, втором, третьем, четвёртом или шестом с конца разряде в двоичной записи».
Друзья говорят: «Нет, число не содержит единичку ни на одном из этих разрядов». Минимальное
, которое могут взять друзья, равно
, то есть
.
Решение 2 (прогой):
def f(x, A):
Q = [12, 48]
P = [32, 64]
return ((x % 5 == 0) or (not inn(x, Q)) or (x & A == 0) or ((inn(x, P)) <= (abs(x - 31) >= 17)))
def inn(x, P):
return P[0] <= x <= P[1]
for A in range(1, 1000):
flag = True
for x in range(-1000, 1000):
if not f(x, A):
flag = False
break
if flag:
print(A)
break