Примеры задач
Простые типы данных
Найдите натуральное число от 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.