Задания
Версия для печати и копирования в MS Word

На­пи­ши­те про­грам­му, ко­то­рая ищет среди целых чисел, при­над­ле­жа­щих чис­ло­во­му от­рез­ку [84052; 84130], число, име­ю­щее мак­си­маль­ное ко­ли­че­ство раз­лич­ных на­ту­раль­ных де­ли­те­лей, если таких чисел не­сколь­ко  — най­ди­те ми­ни­маль­ное из них. Вы­ве­ди­те на экран ко­ли­че­ство де­ли­те­лей та­ко­го числа и само число.

На­при­мер, в диа­па­зо­не [2; 48] мак­си­маль­ное ко­ли­че­ство раз­лич­ных на­ту­раль­ных де­ли­те­лей имеет число 48, по­это­му для этого диа­па­зо­на вывод на экра­не долж­на со­дер­жать сле­ду­ю­щие зна­че­ния:

10 48

 

Ответ:

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

Ре­ше­ние.

Решим за­да­чу пе­ре­бо­ром. Будем про­ве­рять ко­ли­че­ство де­ли­те­лей каж­до­го числа из диа­па­зо­на, если их ко­ли­че­ство наи­боль­шее  — за­пи­сы­ва­ем ко­ли­че­ство де­ли­те­лей и само число в за­ра­нее объ­яв­лен­ные пе­ре­мен­ные. После этого вы­во­дим эти числа на экран.

 

При­ведём ре­ше­ние на языке Pascal.

var

minNum, numDel, maxDel, i, j: longint;

begin

minNum := 0;

maxDel := 0;

for i := 84052 to 84130 do begin

numDel := 0;

for j := 1 to i do begin

if (i mod j = 0) then begin

numDel := numDel + 1;

end;

end;

if (numDel > maxDel) then begin

maxDel := numDel;

minNum := i;

end;

end;

writeln(maxDel, ' ', minNum);

end.

 

В ре­зуль­та­те ра­бо­ты про­грам­ма долж­на вы­ве­сти сле­ду­ю­щее:

72 84084

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

maxi = 0

for i in range(84052, 84131):

numdel = 0

for j in range(1, i + 1):

if i % j == 0:

numdel += 1

if numdel > maxi:

maxi = numdel

mini = i

print(maxi, mini)


Аналоги к заданию № 27857: 27858 Все

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