function F(n: integer): boolean;
begin
F := (n div 1000) * (n div 100 mod 10) - (n div 10 mod 10) * (n mod 10) = (n div 1000) + (n div 100 mod 10) + (n div 10 mod 10) + (n mod 10);
end;
var
i: integer;
begin
for i := 1000 to 9999 do
begin
if F(i) then
Write(i, ' ');
if i mod 1000 = 0 then
WriteLn;
end;
ReadLn;
end.
Следующий вариант
var
a,b,c,d: byte;
begin
for a := 1 to 9 do
for b := 0 to 9 do
for c := 0 to 9 do
for d := 0 to 9 do
if a * b - c * d = a + b + c + d then
Write(a, b, c, d, ' ');
ReadLn;
end.