Простые числа в интервале - Pascal ABC
Формулировка задачи:
Укажите ошибку,пожалуйста
Решение задачи: «Простые числа в интервале»
textual
Листинг программы
function prost(x:integer):boolean;
var y:integer;
f:boolean;
begin
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 a, b, ch, k: integer;
begin
write('a='); readln(a);
write('b='); readln(b);
k:=0;
for ch:=a to b do
begin
if Prost(ch)then
begin
write(ch,' ');
inc(k);
end;
if k=5 then break;
end;
writeln;
if k<5 then writeln('На интервале [',a,',',b,'] нет 5 простых чисел');
end.
Объяснение кода листинга программы
- В функции prost проверяется, является ли число x простым. Для этого используются условия, проверяющие делители числа x. Если x меньше 2, то функция возвращает false, так как 0 и 1 не являются простыми числами. Если x равно 2, то функция возвращает true, так как 2 является простым числом. Если x делится на 2 без остатка, то функция возвращает false, так как четные числа больше 2 не являются простыми. В противном случае, функция начинает поиск следующего простого числа в интервале от x до самого числа x.
- В основной части программы запрашиваются два числа a и b. Затем происходит цикл for, который проходит по всем числам от a до b. Если текущее число является простым (то есть, если функция prost(ch) возвращает true), то это число выводится на экран, а счетчик k увеличивается на 1. Цикл прерывается, когда k достигает 5, или когда заканчивается диапазон чисел от a до b.
- В конце программы выводится сообщение, указывающее, есть ли в интервале [a,b] 5 простых чисел. Если количество простых чисел меньше 5, то выводится сообщение
На интервале [a,b] нет 5 простых чисел.