Примеры задач

Простые типы данных


Найдите натуральное число от 1 до 10000 с максимальной суммой делителей.

Методика решения

Используемые переменные:
s – число с максимальной суммой делителей;
m – сумма делителей числа;
max – максимальная сумма делителей;
I, j – параметры цикла.

Для реализации данной программы понадобится операция mod – нахождение остатка от деления.
С помощью цикла с параметром перебираем натуральные числа от I = 1 до 10000. Для каждого из чисел ищем сумму делителей. Для этого организуем ещё один вложенный цикл и перебираем в нём возможные делители (от j = 1 до самого числа i ). Проверяем, является ли j делителем числа i (если I mod j = 0, то есть остаток от деления I на j равен 0, то j является делителем числа i ). Если да, то прибавляем j к сумме делителей, которую предварительно необходимо обнулить перед вложенным циклом.
После выполнения вложенного цикла сравниваем сумму делителей числа с переменной max . Если m больше max , то переменной max присваиваем значение m , а числу с максимальной суммой делителей присваиваем текущее число ( i ).
Таким образом, находим число с максимальной суммой делителей и выводим его на экран.

Листинг программы

Program ex5;
Uses Crt;
Var i,j,max,s:integer; m:integer;
Begin
Clrscr;
max:=0;
For i:=1 To 10000 Do
Begin
m:=0;
For j:=1 To i Do
IF (i Mod j)=0 Then
m:=m+j;
if m>max then
Begin
max:=m;
s:=i;
end;
End;
Writeln('Число ',s,' имеет максимальную сумму делителей ',max);
Readkey;
End.

Запустить программу






Назад