На натуральном отрезке [a,b] найдите и выведите число N с наибольшей суммой своих делителей - Pascal ABC

Формулировка задачи:

на натуральном отрезке [a,b] найдите и выведите число N с наибольшей суммой своих делителей Через Repeat или While
var a,b,i,j,s,max,N,d: longint;
begin
 write('Введите натуральное число a=');
 readln(a);
 write('Введите натуральное число,больше ',a,' b=');
 readln(b);
max:=0;
d:=1;
repeat
  s:=0;
  for j:=2 to i div 2 do
  if i mod j=0 then s:=s+j;
  if s>max then
   begin
    max:=s;
    N:=i;
   end;
   d:=d+1;
 until d<b;
write('Наибольшую сумму делителей=',max,' имеет число ',N);
end.
Программа выводит нули. Помогите решить правильно.

Код к задаче: «На натуральном отрезке [a,b] найдите и выведите число N с наибольшей суммой своих делителей - Pascal ABC»

textual
var
  a, b, i, j, s, max, N, d: longint;
 
begin
  write('Введите натуральное число a=');
  readln(a);
  write('Введите натуральное число,больше ', a, ' b=');
  readln(b);
  max := 0;
  d := a;
  i := b;
  repeat
    s := 0;
    for j := 2 to i div 2 do
      if i mod j = 0 then 
        s := s + j;
    if s > max then
    begin
      max := s;
      N := i;
    end;
    d := d + 1;
  until d < b;
  write('Наибольшую сумму делителей=', max, ' имеет число ', N);
end.

7   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ