program primed;
{$APPTYPE CONSOLE}
var
primes : array[2..500] of Boolean;
procedure GeneratePrimes();
var
i, p, idx : Integer;
begin
for i := Low(primes) to High(primes) do
primes[i] := true;
p := 2;
idx := 2;
while (p*p <= High(primes)) do begin
idx := p*p;
while (idx <= High(primes)) do begin
primes[idx] := false;
Inc(idx, p);
end;
repeat
Inc(p);
until (primes[p]) or (p > High(primes));
end;
end;
var
i, a, b : Integer;
s : String;
begin
a := 0;
b := 0;
GeneratePrimes();
WriteLn('Bily sgenerirovani sleduushie prostie chisla: ');
for i := Low(primes) to High(primes) do
if (primes[i]) then Write(i, ' ');
WriteLn('');
Write('Vvedite pervoe chislo: ');
ReadLn(a);
Write('Vvedite vtoroe chislo: ');
ReadLn(b);
if (a >= Low(primes)) and (a <= High(primes)) and (b >= Low(primes)) and (b <= High(primes)) then begin
if (abs(a - b) = 2) then
WriteLn('Chisla yavlyautsa prostimi bliznetsami!')
else
WriteLn('Chisla NE yavlyautsa prostimi bliznetsami!')
end else WriteLn('Chisla lejat za predelami diapazona dopustimih znacheniy!');
ReadLn;
end.