uses crt;
function Sov(x:longint):boolean;
var j,k:longint;
begin
k:=0;
for j:=1 to x div 2 do
if x mod j=0 then k:=k+j;
if k=x then Sov:=true else Sov:=false;
end;
var a:array[1..100] of integer;
n,i,max,k,j:integer;
begin
clrscr;
write('n=');readln(n);
writeln('Введите последовательность из ',n,' чисел:');
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
clrscr;
writeln('Massiv:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
writeln('Последовательности совершенных чисел:');
max:=0;
i:=1;
while i<=n do
if Sov(a[i])then
begin
k:=1;j:=i;
while Sov(a[j])and(j<=n)do
begin
write(a[j],' ');
j:=j+1;
k:=k+1;
end;
writeln;
if k>max then max:=k-1;
i:=i+k;
end
else i:=i+1;
if max=0 then write('В массиве нет совершенных чисел!')
else write('Максимальная длина последовательности=',max);
readln
end.