Программа печатает в порядке
уменьшения все целые числа в диапазоне 1÷4900, которые можно представить
в виде n2+2k2, но нельзя представить в виде 7ij+j+3 (n,k,i,j>0).
program Prg;
uses crt;
type t=set of byte;
ar=array[0..20]of t;
var p,q,v:byte;
i,j,k,u,s,f:integer;
a:ar;
begin
u:=4900;
v:=u div 255;
for i:=1 to v do
a[i]:=[];
for i:=1 to u do begin
j:=i; k:=i; p:=0; q:=0;
while s<=u do
begin
s:=sqr(i)+2*sqr(j);
q:=s div 255;
p:=s mod 255;
include(a[q],p);
inc(j);
end;
while f<=u do
begin
f:=7*i*k+k+3;
q:=f div 255;
p:=f mod 255;
a[q]:=a[q]-[p];
inc(k);
end;
end;
clrscr;
for i:=u downto
1 do
if i mod
readkey;
end.
Результат работы программы
4609 4233 3873 3529 3201 2889
2593 2313 2049 1801 1569 1353 1153 969 801 649 513 393 289 201 129 73 33 9