Вывести все простые числа, меньшие n - Pascal
Формулировка задачи:
Дано натуральное число n. Составить программу, для вывода на экран всех простых чисел меньших n. Для определения, является ли число простым, написать функцию. Если на данном отрезке простых чисел нет, вывести сообщение об этом.
Решение задачи: «Вывести все простые числа, меньшие n»
textual
Листинг программы
function prost(x:integer):boolean;
var y:integer;
f:boolean;
begin
x:=abs(x);
if x<2 then f:=false{0,1 не простое}
else if x=2 then f:=true{2 простое}
else if x mod 2=0 then f:=false{четные юольше 2 не простые}
else
begin
f:=true;
y:=3;
while(y*y<=x)and f do
if x mod y=0 then f:=false
else inc(y,2);
end;
prost:=f
end;
var n,i,k:integer;
begin
repeat
writeln('Введите натуральное число n=');
readln(n);
until n>0;
writeln('Простые числа в интервале [1..',n,']');
k:=0;
for i:=1 to n do
if prost(i) then
begin
write(i,' ');
inc(k)
end;
writeln;
if k=0 then write('Нет простых чисел')
end.
Объяснение кода листинга программы
Функция prost() принимает целочисленный аргумент x и возвращает логическое значение true, если x является простым числом, и false в противном случае. Внутри функции используются несколько переменных:
- y - используется для проверки, является ли число четным или нечетным.
- f - флаг, который указывает, является ли число простым.
- x - входное число, которое нужно проверить на простоту.
Далее, код задает число n и в цикле повторяется до тех пор, пока n больше 0. Затем выводится сообщение с простыми числами в заданном диапазоне. Если в этом диапазоне нет простых чисел, выводится сообщение
Нет простых чисел. Для определения простых чисел в диапазоне [1..n] используется цикл for, в котором перебираются все числа от 1 до n. Если число i является простым, то оно выводится на экран, а счетчик k увеличивается на 1. Если в конце цикла k равно 0, значит в диапазоне нет простых чисел, и выводится соответствующее сообщение.