Function IsPrime(m: integer): boolean; var i: integer; p: boolean; begin p := true; for i := 2 to m - 1 do if (m mod i) = 0 then p := false; IsPrime := p end;
var n, i, j: integer; flag: boolean;
begin repeat Write('Введите натуральное число, большее 2 :'); Readln(n); flag := (n < 2) or (n mod 2 = 1); if flag then Writeln('Число введено с нарушением, повторите ввод'); until not flag; Writeln('Варианты представления числа в виде суммы двух простых:'); for i := 1 to n do for j := 1 to (n div 2) do if (IsPrime(i) and IsPrime(j)) and (i + j = n) then writeln(i, '+', j); end.
Тестовое решение:
Введите натуральное число, большее 2: 110 Варианты представления числа в виде суммы двух простых: 67+43 73+37 79+31 97+13 103+7 107+3 109+1
var
i: integer;
p: boolean;
begin
p := true;
for i := 2 to m - 1 do
if (m mod i) = 0 then p := false;
IsPrime := p
end;
var
n, i, j: integer;
flag: boolean;
begin
repeat
Write('Введите натуральное число, большее 2 :');
Readln(n);
flag := (n < 2) or (n mod 2 = 1);
if flag then
Writeln('Число введено с нарушением, повторите ввод');
until not flag;
Writeln('Варианты представления числа в виде суммы двух простых:');
for i := 1 to n do
for j := 1 to (n div 2) do
if (IsPrime(i) and IsPrime(j)) and (i + j = n) then writeln(i, '+', j);
end.
Тестовое решение:
Введите натуральное число, большее 2: 110
Варианты представления числа в виде суммы двух простых:
67+43
73+37
79+31
97+13
103+7
107+3
109+1