Гипотеза Гольдбаха - Pascal (83524)
Формулировка задачи:
Здравствуйте,попал в очень неприятную ситуацию, понадеялся на человека, а он "не смог". Времени мало, я попытаюсь за ночь хоть что то понять из основ программирования и написать, завтра уже сдавать.
если кого не затруднит помогите написать программы на pascal:
3) Гипотеза Гольдбаха. Данное четное число n>2. Проверить для этого числа гипотезу Гольдаха, суть которой заключается в том, что каждое чётное n, больше двух, можно представить в виде суммыдвух простых чисел. Эта гипотеза на сегодняшний день не имеет строгого доказательства. Определить подпрограмму, позволяющее распознавать простые числа
Решение задачи: «Гипотеза Гольдбаха»
textual
Листинг программы
uses crt; var i,n,k: integer; function IsSimple (x: integer): boolean; var j,k: integer; begin k:=0; for j:=2 to x div 2 do if x mod j=0 then inc(k); IsSimple:=k=0; end; begin repeat write('n='); readln(n); until (n>2) and (n mod 2=0); for i:=1 to n-1 do if IsSimple(i) and IsSimple(n-i) then begin writeln(n,'=',i,'+',n-i); inc(k); end; writeln(k>0); readln; end.
Объяснение кода листинга программы
- Входные данные представлены целочисленной переменной n, которая принимает значения от 2 и выше, при этом является четным числом.
- Используется функция IsSimple(x: integer), которая проверяет, является ли число x простым. При этом в функции используется цикл for, который выполняет проверку на делимость числа x на все числа от 2 до корня из x. Если число делится на какое-либо из этих чисел без остатка, то функция увеличивает счетчик k на 1. В конце функция возвращает значение k, которое будет равно 0, если число x является простым, и 1 в противном случае.
- В основном блоке программы используется цикл repeat-until, который будет выполняться до тех пор, пока не будет введено число n, большее 2 и при этом четное.
- Внутри цикла используется еще один цикл for, который выполняет проверку на простоту для всех чисел от 1 до n-1. Если число является простым и при этом его можно представить в виде суммы двух других простых чисел (с учетом того, что одно из этих чисел будет равно n-i, а второе - i), то выводится соответствующее сообщение, увеличивается счетчик k и выполняется выход из цикла с помощью оператора break.
- В конце программы выводится сообщение, информирующее о том, что найдено хотя бы одно представление числа n в виде суммы двух простых чисел.
- Ввод данных осуществляется с помощью функции readln(), которая считывает целочисленное значение.
- В конце программы выполняется чтение данных с помощью функции readln() для завершения работы программы.