Задания
Версия для печати и копирования в MS Word
Тип 15 № 9320
i

Обо­зна­чим через ДЕЛ(n, m) утвер­жде­ние «на­ту­раль­ное число n де­лит­ся без остат­ка на на­ту­раль­ное число m». Для ка­ко­го наи­мень­ше­го на­ту­раль­но­го числа А фор­му­ла

ДЕЛ(x, А) → (ДЕЛ(x, 21) + ДЕЛ(x, 35))

тож­де­ствен­но ис­тин­на (то есть при­ни­ма­ет зна­че­ние 1 при любом на­ту­раль­ном зна­че­нии пе­ре­мен­ной x)?

(М. В. Куз­не­цо­ва)

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние К. Ю. По­ля­ко­ва.

 

Введём обо­зна­че­ния:

A = ДЕЛ(x, А), D21 = ДЕЛ(x, 21), D35 = ДЕЛ(x, 35) и DN = ДЕЛ(x, N)

Введём мно­же­ства:

A  — мно­же­ство на­ту­раль­ных чисел, для ко­то­рых вы­пол­ня­ет­ся усло­вие A, D21  — мно­же­ство на­ту­раль­ных чисел, для ко­то­рых вы­пол­ня­ет­ся усло­вие D21, D35  — мно­же­ство на­ту­раль­ных чисел, для ко­то­рых вы­пол­ня­ет­ся усло­вие D35 и т. д.

За­пи­шем фор­му­лу из усло­вия в наших обо­зна­че­ни­ях A → (D21 + D35) = 1.

Рас­кро­ем им­пли­ка­цию по пра­ви­лу A \to B = \overlineA плюс B:

A \to левая круг­лая скоб­ка D_21 плюс D_35 пра­вая круг­лая скоб­ка = \overlineA плюс D_21 плюс D_35.

Чтобы фор­му­ла была тож­де­ствен­но ис­тин­ной не­об­хо­ди­мо, чтобы \overlineA = 1 (т. е. A = 0), когда D21 + D35 = 0. Тогда наи­боль­шее мно­же­ство A опре­де­ля­ет­ся как Amax = D21 + D35. Мно­же­ство Amax, точно со­от­вет­ству­ю­щее вы­ра­же­нию с по­мо­щью функ­ции ДЕЛ по­лу­чить не­воз­мож­но. Вы­пол­ним ана­лиз ис­ход­ной фор­му­лы с по­мо­щью кру­гов Эй­ле­ра. Чтобы в мно­же­ство \overlineA вхо­ди­ли все числа, не по­пав­шие в объ­еди­не­ние D21 + D35, до­ста­точ­но, чтобы мно­же­ство А на­хо­ди­лось внут­ри этого объ­еди­не­ния, на­при­мер, сов­па­дая с одним из мно­жеств D35 или D21, или рас­по­ла­га­ясь внут­ри лю­бо­го из них, что воз­мож­но, если ис­поль­зо­вать де­ли­те­ли, крат­ные 21 или 35. В за­да­нии тре­бу­ет­ся найти наи­мень­шее зна­че­ние, этому усло­вию со­от­вет­ству­ет 21.

 

Ответ: 21

 

При­ведём дру­гое ре­ше­ние на языке Python.

for a in range(1, 100):

k = 0

for x in range(1, 1000):

if (x % a == 0) <= ((x % 21 == 0) + (x % 35 == 0)):

k += 1

if k == 999:

print(a)

break


Аналоги к заданию № 8106: 9320 9321 9322 ... Все

Раздел кодификатора ФИПИ: 1.5.1 Вы­ска­зы­ва­ния, ло­ги­че­ские опе­ра­ции, кван­то­ры, ис­тин­ность вы­ска­зы­ва­ния