Листинг программы
program z44;
{ Среди простых чисел, не превосходящих n, найти такое,
в двоичной записи которого максимальное число единиц. }
uses crt;
var b:array[1..1000]of longint;
c:array[1..1000]of longint;
kol,i,j,h,fl,m,g,max,poz:longint;
label met1,met2;
procedure sistema(n:longint;var kol:longint);
var a:array[1..10]of longint;
var l,k:longint;gg:string;
begin
j:=0;k:=0;
while n>=1 do
begin
inc(k);inc(j);
a[j]:=n mod 2;
n:=n div 2;
end;
for j:=1 to k do g:=g*10+a[k+1-j];
str(g,gg);kol:=0;
for l:=1 to length(gg) do
if gg[l]='1' then inc(kol);
end;
begin
clrscr;
write('n=');readln(m);
sistema(2,kol);c[1]:=2;b[1]:=kol;i:=3;h:=1;
met1:while i<=m do
begin
for j:=2 to i-1 do
if i mod j=0 then begin fl:=1;goto met2; end;
met2:if fl=0 then begin
inc(h);c[h]:=i;
sistema(i,kol);
inc(i);b[h]:=kol;goto met1;
end; fl:=0;inc(i);
end;
max:=b[1];
for i:=2 to h do
if max<b[h] then begin max:=b[h];poz:=h; end;
write('Ответ:',c[poz]);
readln;
end.