Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [84052; 84130], число, имеющее максимальное количество различных натуральных делителей, если таких чисел несколько — найдите минимальное из них. Выведите на экран количество делителей такого числа и само число.
Например, в диапазоне [2; 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)

