Задания
Версия для печати и копирования в MS Word
Тип 15 № 9321
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,

Тогда ис­ход­ное вы­ра­же­ние

¬ДЕЛ(x, А) → (¬ДЕЛ(x, 21) ∧¬ ДЕЛ(x, 35))

при­ни­ма­ет вид \overlineA \to левая круг­лая скоб­ка \overlineD_21 умно­жить на \overlineD_35 пра­вая круг­лая скоб­ка , от­ку­да в силу пра­ви­ла A \to B = \overlineA плюс B по­лу­ча­ем:

\overlineA \to левая круг­лая скоб­ка \overlineD_21 плюс \overlineD_35 пра­вая круг­лая скоб­ка = A плюс \overlineD_21 умно­жить на \overlineD_35.

За­ме­тим, что вто­рое сла­га­е­мое при­ни­ма­ет зна­че­ние 0 для чисел крат­ных 21 или 35, то есть для чисел вида 21k и 35n, где k и n на­ту­раль­ные. Чтобы ло­ги­че­ская сумма была тож­де­ствен­но ис­тин­ной, для чисел ука­зан­но­го вида пер­вое сла­га­е­мое долж­но об­ра­щать­ся в 1. Сле­до­ва­тель­но, число А долж­но быть таким, чтобы любое из чисел 21k и 35n де­ли­лось на него на­це­ло. Общие де­ли­те­ли чисел 21k и 35n, не за­ви­ся­щие от k и n,  — суть числа 1 и 7. Наи­боль­шее из них равно 7.

 

Ответ: 7.

 

При­ме­ча­ние.

Если бы тре­бо­ва­лось опре­де­лить наи­мень­шее на­ту­раль­ное А, обес­пе­чи­ва­ю­щее ис­тин­ность ис­ход­но­го вы­ра­же­ния для всех чисел Х, можно было бы на­чать ана­лиз с наи­мень­ше­го на­ту­раль­но­го числа  — с числа 1, и убе­дить­ся, что оно и яв­ля­ет­ся ис­ко­мым: по­сыл­ка им­пли­ка­ции для числа 1 ложна, а зна­чит, сама им­пли­ка­ция ис­тин­на.

 

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

for a in range(100, 0, -1):

k = 0

for x in range(1, 1000):

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

k += 1

if k == 999:

print(a)

break

 

При­ведём ре­ше­ние Сер­гея Донец на языке PascalABC.NET.

begin

var d:=21*35;//пе­ре­мно­жа­ем име­ю­щи­е­ся числа

for var A := d downto 1 do

if(1..d).All(x->not x.Divs(A)<=(not x.Divs(21)and not x.Divs(35)))

then begin A.Print;break end

end.


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

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