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

Ал­го­ритм по­лу­ча­ет на вход на­ту­раль­ное число N > 1 и стро­ит по нему новое число R сле­ду­ю­щим об­ра­зом:

1.  Если ис­ход­ное число крат­но 2, оно де­лит­ся на 2, в про­тив­ном слу­чае из него вы­чи­та­ет­ся 1.

2.  Если по­лу­чен­ное на преды­ду­щем шаге число крат­но 3, оно де­лит­ся на 3, в про­тив­ном слу­чае из него вы­чи­та­ет­ся 1.

3.  Если по­лу­чен­ное на преды­ду­щем шаге число крат­но 7, оно де­лит­ся на 7, в про­тив­ном слу­чае из него вы­чи­та­ет­ся 1.

4.  Число, по­лу­чен­ное на шаге 3, счи­та­ет­ся ре­зуль­та­том ра­бо­ты ал­го­рит­ма.

При­мер. Дано число N  =  44. Ал­го­ритм ра­бо­та­ет сле­ду­ю­щим об­ра­зом:

1.  Число 44 крат­но 2, оно де­лит­ся на 2, по­лу­ча­ет­ся 22.

2.  Число 22 не крат­но 3, из него вы­чи­та­ет­ся 1, по­лу­ча­ет­ся 21.

3.  Число 21 крат­но 7, оно де­лит­ся на 7, по­лу­ча­ет­ся 3.

4.  Ре­зуль­тат ра­бо­ты ал­го­рит­ма R  =  3.

Сколь­ко су­ще­ству­ет раз­лич­ных на­ту­раль­ных чисел N, при об­ра­бот­ке ко­то­рых по­лу­чит­ся R  =  1?

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

Ре­ше­ние.

Рас­смот­рим ра­бо­ту ал­го­рит­ма в об­рат­ном по­ряд­ке:

Крас­ным на ри­сун­ке от­ме­че­ны пути, ко­то­рые не под­хо­дят по усло­вию за­да­чи. Число 2 нель­зя по­лу­чить вы­чи­та­ни­ем еди­ни­цы из числа 3, по­сколь­ку оно крат­но трём. Число 21 нель­зя по­лу­чить вы­чи­та­ни­ем еди­ни­цы из числа 22, по­сколь­ку оно крат­но двум.

Таким об­ра­зом, под­хо­дят пять чисел: 7, 9, 12, 16 и 42.

 

Ответ: 5.

 

При­ве­дем ре­ше­ние Ми­ха­и­ла Глин­ско­го.

За­ме­тим, что ис­ход­ное число не может пре­вы­шать 1 · 2 · 3 · 7  =  42. С по­мо­щью про­грам­мы на языке Пас­каль будем пе­ре­би­рать числа от 1 до 42 и вы­во­дить те из них, при об­ра­бот­ке ко­то­рых по ука­зан­но­му ал­го­рит­му по­лу­ча­ет­ся 1.

var x,i: integer;

begin

  for i:=1 to 42 do begin

    x:=i;

    if x mod 2 =0 then x:= x div 2 else x:=x-1;

    if x mod 3 =0 then x:= x div 3 else x:=x-1;

    if x mod 7 =0 then x:= x div 7 else x:=x-1;

    if x=1 then writeln(i);

    end;

end.

Раздел кодификатора ФИПИ: