Показать сообщение отдельно
Старый 25.12.2015, 17:07   #5 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
По умолчанию

Код:
function Summ(ai:integer):integer;
var  j,k:integer;
begin
     if ai=1                {если заданное число 1, то у него один делитель}
      then Summ:=1          {значению функции присваивается 1}
      else                  {если не равно 1}
       begin
         k:=0;              {обнуление суммы} 
          for j:=1 to ai do {инициализация цикла до заданного числа}
           if (ai mod j)=0 then {если нет остатка при делении, то это делитель}
            k:=k+j;         {суммирование делителей}
             Summ:=k;       {значению функции присваивается сумма}
       end;
end;
var  n,m,i,sum,t,e:integer;
begin
     Write('M = ');
      Readln(m);            {ввод первого значения диапазона}
       Write('N > M = ');
        Readln(n);          {ввод второго значения диапазона}
         Writeln;
     sum:=0; t:=0;          {обнуление наибольшей суммы делителей}
      for i:=m to n do      {инициализация цикла перебора в диапазоне}
       begin
         e:=Summ(i);        {вызов функции подсчёта суммы делителей очередного числа}  
          if e>sum then     {если значение функции больше наибольшей суммы то}
           begin          
             t:=i;          {запоминаем число}
              sum:=e;       {запоминаем сумму}
           end
       end;
     Writeln('Cislo = ',t);
      Writeln('Summa deliteley = ',sum);
     Readln;
end.
Евгений вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070