Найти N пар простых чисел-близнецов - Pascal
Формулировка задачи:
помогите пожалуйста , как реализовать эту задачу
Найти N пар простых чисел, которые отличались бы друг от друга на 2 («близнецы»). Использовать функции поиска «близнецов» и простых чисел.
Решение задачи: «Найти N пар простых чисел-близнецов»
textual
Листинг программы
function IsGemini(n: longint): boolean; var i, sqrtn, delta: word; begin if (n >= 6) and (n mod 6 = 0) then begin i := 5; delta := 2; sqrtn := trunc(sqrt(n + 1)); IsGemini := false; while i <= sqrtn do begin if ((n - 1) mod i = 0) or ((n + 1) mod i = 0) then exit; inc(i, delta); delta := delta xor 6 {смена шага, то 2, то 4} end; IsGemini := true; end else IsGemini := n = 4 end; var i, k, n: longint; begin repeat write('n > 0; n = '); readln(n) until n > 0; writeln('1: 3, 5'); i := 0; k := 1; while k < n do begin inc(i, 6); if IsGemini(i) then begin inc(k); writeln(k, ': ', i - 1, ', ', i + 1) end end; readln end.
Объяснение кода листинга программы
- Объявление функции
IsGemini
с аргументомn
типа longint и возвращаемым значением типа boolean. - Объявление переменных
i
,sqrtn
иdelta
типа word. - Проверка, является ли число
n
кратным 6 и больше или равным 6. Если это условие выполняется, выполняются следующие действия. - Установка начального значения переменной
i
как 5, а переменнойdelta
как 2. - Нахождение квадратного корня из
n + 1
и приведение его к целому значению. - Установка значения
IsGemini
как false. - В цикле, пока
i
меньше или равноsqrtn
, выполняются следующие действия:- Проверка наличия делителей для
n+1
иn-1
. Если хотя бы один делитель обнаружен, происходит выход из цикла. - Увеличение значения
i
наdelta
. - Изменение значения
delta
с использованием операции xor 6 (переключение между 2 и 4).
- Проверка наличия делителей для
- Если условие кратности 6 и больше или равности 6 не выполняется, то
IsGemini
равно результату сравненияn
с 4. - Объявление переменных
i
,k
иn
типа longint. - Цикл повторяется до тех пор, пока
n
не станет больше 0, при этом пользователю предлагается вводn
. - Вывод пары простых чисел-близнецов для значений 1, 3 и 5.
- Инициализация переменных
i
иk
. Происходит проверка условия, и еслиk
меньшеn
, выполняются следующие действия:- Увеличение значения
i
на 6. - Проверка, является ли число
i
парой простых чисел-близнецов, и если да, выводится информация о паре.
- Увеличение значения
- Конец программы. P.S. форматирование кода Pascal было адаптировано для понимания в текстовом виде.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д