zadach227.PAS

{* Задача 227 *}

Unit ZADACH227;
Interface
Implementation
Begin
 writeln('Дана целочисленная таблица а[1..20] положительных элементов. Найти среднее арифметическое элементов таблицы и выяснить, является ли данное натуральное число совершенным (натуральное число называется совершенным, если оно равно сумме своих делителей, исключая само число, например 6=1+2+3)');
End.

Program zadach227;

Uses zadach227.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключение модулей *}
Var {* Необходимые переменные *}
  i   : longint;
  m   : longint;
  k   : longint;
  sum : longint;
  a   : Array [1..20] Of longint;
  b   : Array [1..50] Of longint;
  s   : real;
Begin
  clrscr; {* Очищаем экран *}
  textcolor(10); {* Выбрать Светло-зеленый цвет текста *}
  write('введите кол-во элементов таблицы: ');
  readln(m);
  For i := 1 To m Do {* Цикл для i => [1 .. m] *}
  Begin
    write('a[', i, ']=');
    readln(a[i]);
    s := s + a[i];
  End;
  s := s / m;
  writeln('среднее орифметическое: ', s);
  m := round(s);
  write('при округлении ');
  If m = 1 Then
  Begin
    write('совершенное');
    readln; {* Ждем подтверждения пользователя *}
    halt;
  End;
  sum := 0;
  k := 1;
  For i := 1 To m - 1 Do {* Цикл для i => [1 .. m] *}
    If m Mod i = 0 Then
    Begin
      b[k] := i;
      inc(k); {* Увеличиваем k на 1 *}
    End;
  For i := 1 To k - 1 Do {* Переменная i увеличивается с 1 до k *}
    sum := sum + b[i];
  If m = sum Then
    write('совершенное')
  Else write('не совершенное');
    readln; {* Ждем нажатия Enter *}
End.