zadach269.PAS

{* Задача 269 *}

Unit ZADACH269;
Interface
Implementation
Begin
 writeln('Совершенным числом называется число, равное сумме всех делителей, меньших, чем оно само. Например, 28=1+2+4+7+14. Составить программу, которая находит все совершенные числа в пределах некоторого числа.');
End.

Program zadacha_6;

Uses zadach269.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключение модулей *}
Var {* Объявление переменных *}
  n : integer; {число в пределах которых будут находятся совершенные числа}
  d : integer; {делители}
  s : integer; {сумма делителей}
  i : integer; {искомые числа}
Begin
  clrscr; {* Стираем всё с экрана *}
  writeln ('введите число в пределах которого будут находиться совершенные числа');
  readln (n);
  For i := 2 To n - 1 Do {* Цикл для i => [2 .. n] *}
    s := 1;
  For d := 2 To i - 1 Do {* Переменная d увеличивается с 2 до i *}
  Begin
    If i Mod d = 0 Then
    Begin
      s := s + d;
      d := d + 1;
    End;
    If s = i Then
    Begin
      writeln (i, 'совершенное');
    End;
    
  End;
  
End.