Разработать подпрограмму, определяющую, является ли целое число простым - PascalABC.NET
Формулировка задачи:
дбрый день!
3. Разработать подпрограммы (функции или процедуры):
• prostoe(), которая определяет, является ли целое действительное число простым;
• sostavnoe(), которая выводит в порядке убывания все делители составного действительного числа.
Используя функции, определить значения всех простых чисел в диапазоне от 150 до 250, и все делители длясоставных чисел.Вывод результатов осуществлять в цикле, блоками по 10 значений, после которых требуется нажать клавишу с клавиатуры.
Примечание: простым называется число, которое делится только на само себя и на 1. Результаты обработки значений должны выводиться в одном цикле.
Решение задачи: «Разработать подпрограмму, определяющую, является ли целое число простым»
textual
Листинг программы
function prostoe(n: integer): boolean; var i, sqrtn, delta: integer; begin if (n >= 5) and ((n - 1) mod 6 = 0) or ((n + 1) mod 6 = 0) then begin i := 5; delta := 2; sqrtn := trunc(sqrt(n)); prostoe := false; while i <= sqrtn do begin if n mod i = 0 then Exit; inc(i, delta); delta := delta xor 6; {смена шага, то 2, то 4} end; prostoe := true; end else prostoe := (n = 2) or (n = 3) end; procedure sostavnoe(n: integer); var i: integer; begin write(n:4); for i := n div 2 downto 2 do if n mod i = 0 then write(i:4); writeln(1:4) end; var x: integer; begin for x := 150 to 250 do begin write(x:4, ': '); if prostoe(x) then writeln('простое') else begin writeln('составное, делители числа: '); sostavnoe(x) end; if x mod 10 = 9 then begin write('Нажмите <Enter> для продолжения.'); readln end end; write('Нажмите <Enter> для выхода.'); readln end.
Объяснение кода листинга программы
- Создается функция
prostoe(n: integer): boolean
, которая принимает целое числоn
и возвращает логическое значениеtrue
, если число простое, иfalse
, если число составное. - В функции определены следующие переменные:
i
: переменная для цикла,sqrtn
: квадратный корень из числаn
,delta
: шаг для перебора делителей.
- Проверяется, является ли число
n
больше или равным 5 и при этом делится на 6 без остатка. Если это так, то выполняется код для составного числа. - В процедуре
sostavnoe(n: integer)
выводится само числоn
и все его делители, которые меньше самого числа. - В основной программе создается переменная
x
, которая перебирает числа от 150 до 250. - Для каждого числа
x
выполняется следующий код:- Выводится число
x
, - Проверяется, является ли число
x
простым с помощью функцииprostoe(x)
. - Если число простое, то выводится сообщение
простое
. - Если число составное, то выводится сообщение
составное, делители числа:
и вызывается процедураsostavnoe(x)
. - После каждого десятка чисел выводится сообщение
Нажмите <Enter> для продолжения.
.
- Выводится число
- В конце программы выводится сообщение
Нажмите <Enter> для выхода.
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д