Гипотеза Гольдбаха - 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.
Объяснение кода листинга программы
- Объявляется функция Prost с аргументом x типа integer и возвращаемым значением boolean.
- Объявляется переменная i типа integer.
- Присваивается значение false переменной Prost.
- Выполняется проверка: если число x не является нечётным и не равно 2, то происходит выход из функции.
- Присваивается значение 3 переменной i.
- Выполняется цикл: пока i умноженное на i меньше или равно x, выполняется следующий блок.
- Если x делится на i без остатка, происходит выход из функции.
- Увеличивается значение i на 2.
- Присваивается значение true переменной Prost.
- Объявляются переменные n, k типа integer и b типа boolean.
- Выполняется цикл repeat-until: пользователю предлагается ввести четное число больше 3, и введенное значение сохраняется в переменной n. Цикл повторяется, пока введенное значение не удовлетворит условию.
- Присваивается значение false переменной b.
- Присваивается значение 2 переменной k.
- Выполняется цикл: пока k меньше или равно n делённое на 2 и b равно false, выполняется следующий блок.
- Если k и n-k являются простыми числами, то b присваивается значение true, и выводится сообщение о том, что число n может быть представлено в виде суммы простых чисел k и n-k.
- Иначе к значению k добавляется 1.
- Если значение b остается false, выводится значение переменной n.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д