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
Конечно можно и через указатель и через ссылку, смотря для чего?)
void foo(int* ptr) тогда вызов выглядит так --> foo(arr + 3)
или
void foo(int& ptr) и вызов --> foo(arr[3]) это более безопасный вариант, без доступа к соседним ячейкам памяти, без копирования, но с возможностью изменения значения в самом массиве, ну, конечно, если не использовать константность, хотя и это 100% гарантии не дает const_cast никто не отменял)) Так что думаю вам и обычной
void foo(int value)
должно хватить.
Голубой цвет соответствует коду 0 255 255 ргб модели