@uliana00

Что не так в коде?

Задание: Напишите программу нахождения следующего за данным числом совершенного числа.
Помогите понять в чем проблема, в ответе выдает 0. Возможно надо ввести ограничение до определенного совершенного числа.
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
    res : cardinal;
     n:integer;

procedure proc(a: integer; var x : int64);

var i, j : cardinal;

begin
  i := n + 1;
  res := 0;
  j := 0;
  while not(res = i) do
    begin

    for j:=i div 2 downto 1 do
    begin
      if (i mod j = 0) then
      begin
        res := res + j;
        if (res > i) then
          break;
      end;

    end;
    if (res = i) then Break
    else
      begin
        res := 0
      end;
    inc (i);
    end;

  x:= res;
end;



begin
  write('vvedite chislo ');
   read(n);


writeln('sled. za dannum chislom sovershennoe chislo ',res);


readln;
readln ;
end.
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 2
@kalapanga
Автор, имейте совесть и хоть иногда на занятия ходите!
Вот есть у Вас процедура поиска числа, но Вы же её не вызываете ни разу!
Ответ написан
Комментировать
usdglander
@usdglander
Yipee-ki-yay
В диапазоне беззнакового целого проще будет использовать массив:
6,
28,
496,
8128,
33 550 336,
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы