Листинг программы
program z45;
{ Найти двоичное представление для чётных совершенных чисел
вида 2 в степени (p-1) умножить на ((2 в степени p)-1) }
uses crt;
var ch,p,s,sum,i,j,f,m,g:longint;
procedure sistema(n:longint;var g:longint);
var t:array[1..10]of longint;k:longint;
begin
j:=0;k:=0;
while n>=1 do
begin
inc(k);inc(j);t[j]:=n mod 2;n:=n div 2;
end;
for j:=1 to k do g:=g*10+t[k+1-j];
end;
begin
clrscr;
write('ограничение: m=');readln(m);
p:=1;s:=2;
while p<=m do
begin
ch:=(s div 2)*(s-1);
if ch mod 2=0 then
begin sum:=0;
for j:=1 to ch-1 do if ch mod j=0 then sum:=sum+j;
if ch=sum then
begin sistema(ch,g);writeln(g); end;
end;
inc(p);s:=s*2;
end;
readln;
end.