Дано четное число n > 2. Проверить для него гипотезу Гольдбаха - Pascal

Узнай цену своей работы

Формулировка задачи:

Дано четное число n > 2. Проверить для него гипотезу Гольдбаха, каждое четное n представляется в виде суммы двух простых чисел.

программу нужно выполнить при помощи подпрограмм (условие) нарешал вот тут чуток, токлько работает для 4 и 6, а дальше дампится xD к примеру 34=17+17 представить незахочет
program p7;
var n,k:integer;
 
procedure vvod;
begin
writeln ('vvedite chetnoe chislo, bolshe dvyh: ');
readln (n);
if n <=2 then writeln ('vvedeno chislo menshe dvyh ');
if (n mod 2)<>0 then writeln ('vvedeno nechetnoe chislo! ')
end;
 
function proverka (pch:longint):boolean;
var i:longint;
begin
for i:=2 to trunc (sqrt(pch)) do
if n mod i=0 then
begin
proverka:=false;
exit;
end;
proverka:=true;
end;
begin
vvod;
for k:=1 to n div 2 do
if proverka(k) and proverka(n-k) then writeln (n,'=',k, '+',n-k);
readln;
end

Решение задачи: «Дано четное число n > 2. Проверить для него гипотезу Гольдбаха»

textual
Листинг программы
function prost(x1:integer):boolean;
var i:integer;
begin
prost:=true;
for i:=2 to x1-1 do if (x1 mod i)=0 then prost:=false; 
end;
 
var n,i,j:integer;
l:boolean;
begin
repeat
write('Введите натуральное число:');
read(n);
if (n<2) or (odd(n)=true)then writeln('Введённое число должно быть чётным и больше двух!');
until (n>2) and (odd(n)=false);
for j:=1 to n do begin
for i:=1 to n div 2 do begin
if (prost(j)=true) and (prost(i)=true) and (i+j=n) then writeln('Число ',n,' является суммой простых чисел ',j,' и ',i);
end;
end;
end.

Объяснение кода листинга программы

В данном коде используется функция prost, которая принимает целое число n в качестве параметра и возвращает логическое значение true, если n является четным, и false в противном случае. Внутри функции используется цикл for, который начинается с i=2 и продолжается до n-1. Если n делится на i без остатка, то функция prost возвращает false, иначе она возвращает true. Затем следует основной код программы, который начинается с повторения до тех пор, пока не будет введено натуральное число больше двух. Затем происходит проверка, является ли введенное число четным и больше двух. Если это условие не выполняется, выводится сообщение с предупреждением. Далее идет цикл for, который начинается с i=1 и продолжается до n/2. Если prost(i) равно true и prost(j) равно true, и i+j равно n, то выводится сообщение о том, что число n является суммой простых чисел i и j. В итоге программа проверяет гипотезу Гольдбаха для всех четных чисел больше двух и выводит результаты соответствующих проверок.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.583 из 5
Похожие ответы