zadach220.PAS

{* Задача 220 *}

Unit ZADACH220;
Interface
Implementation
Begin
 writeln('Дано предложение. Сколько слов являются перевёртышами, и будет ли это число совершенным');
End.

Program z3;

Uses zadach220.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключение модулей *}
Var {* Необходимые переменные *}
  i   : longint;
  j   : longint;
  k   : longint;
  l   : longint;
  l1  : longint;
  sum : longint;
  k1  : longint;
  a   : String;
  b   : String;
  c   : String;
  d   : Array [1..60] Of longint;
Begin
  clrscr; {* Очищаем экран *}
  textcolor(11); {* Выбрать Светло-сине-зеленый цвет текста *}
  write('введите текст: ');
  readln(a);
  l := length(a);
  If (a[l]'.')Or(a[l]'!')Or(a[l]'?'Then
  Begin
    a[l + 1] := ' ';
    inc(l); {* Увеличиваем l на 1 *}
  End;
  Else a[l] := ' ';
    For i := 1 To l Do {* Увеличиваем i от 1 до l с шагом 1 *}
      If (a[i] = ' 'Then
      Begin
        l1 := length(b);
        c := '';
        For j := l1 Downto 1 Do
          c := c + b[j];
        If b = c Then
          inc(k); {* k++ *}
        b := '';
      End;
      Else b := b + a[i];
        If k = 1 Then
        Begin
          write('совершенное');
          readln; {* Ждем подтверждения пользователя *}
          halt;
        End;
  sum := 0;
  k1 := 1;
  For i := 1 To k - 1 Do {* Цикл для i => [1 .. k] *}
    If k Mod i = 0 Then
    Begin
      d[k1] := i;
      inc(k1); {* k1++ *}
    End;
  For i := 1 To k1 - 1 Do {* Цикл для i => [1 .. k1] *}
    sum := sum + d[i];
  If k = sum Then
    write('совершенное')
  Else write('не совершенное');
    readln; {* Ждем подтверждения пользователя *}
End.