Гипотеза Гольдбаха - Pascal (80203)

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

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

Гольдбахом было высказано предположение, что каждое четное число, большее или равное 4 представимо в виде суммы двух простых. Это предположение до сих пор не доказано и не опровергнуто. Написать программу проверки этой гипотезы для данного четного числа. Результатом выполнения программы должен быть вывод самого числа, если не удалось найти пару простых слагаемых, и вывод пары соответствующих простых чисел, если таковая пара найдена.

Решение задачи: «Гипотеза Гольдбаха»

textual
Листинг программы
function Prost(x:integer):boolean;
var i:integer;
Begin
Prost:=false;
if not odd(x) and (x<>2) { проверяем на чётность  }
then exit;
i:=3;
while i*i<=x do { проверяем только нечётные }
 begin
  if x mod i=0 then exit;
  inc(i,2);
 end;
Prost:=true;
end;
var  n,k:integer;
     b:boolean;
begin
repeat
write('Введите четное число больше 3 n=');
readln(n);
until (n>3)and(n mod 2=0);
b:=false;
k:=2;
while(k<=n div 2) and not b do
 begin
  if Prost(k) and Prost(n-k) then
   begin
    b:=true;
    writeln(n,'=',k,'+',n-k);
   end
  else k:=k+1;
 end;
if not b then write(n)
end.

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

  1. Объявляется функция Prost с аргументом x типа integer и возвращаемым значением boolean.
  2. Объявляется переменная i типа integer.
  3. Присваивается значение false переменной Prost.
  4. Выполняется проверка: если число x не является нечётным и не равно 2, то происходит выход из функции.
  5. Присваивается значение 3 переменной i.
  6. Выполняется цикл: пока i умноженное на i меньше или равно x, выполняется следующий блок.
  7. Если x делится на i без остатка, происходит выход из функции.
  8. Увеличивается значение i на 2.
  9. Присваивается значение true переменной Prost.
  10. Объявляются переменные n, k типа integer и b типа boolean.
  11. Выполняется цикл repeat-until: пользователю предлагается ввести четное число больше 3, и введенное значение сохраняется в переменной n. Цикл повторяется, пока введенное значение не удовлетворит условию.
  12. Присваивается значение false переменной b.
  13. Присваивается значение 2 переменной k.
  14. Выполняется цикл: пока k меньше или равно n делённое на 2 и b равно false, выполняется следующий блок.
  15. Если k и n-k являются простыми числами, то b присваивается значение true, и выводится сообщение о том, что число n может быть представлено в виде суммы простых чисел k и n-k.
  16. Иначе к значению k добавляется 1.
  17. Если значение b остается false, выводится значение переменной n.

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


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

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

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