Найти близкое наименьшее простое число - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите с задачей, благодарен заранее: Ввести число N. Найти близкое наименьшее простоe число. (Пример если N = 10 , результат будет 7);

Решение задачи: «Найти близкое наименьшее простое число»

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,m:integer;
begin
write('n=');
readln(n);
if n<2 then m:=2
else if n=2 then m:=3
else
 begin
  m:=n-1;
  while not prost(m)do inc(m);
 end;
write('Наименьшее близкое простое=',m);
readln
end.

Объяснение кода листинга программы

  1. Функция prost принимает целое число x и возвращает логическое значение true, если число x является простым, и false в противном случае.
  2. В функции используется переменная y для хранения текущего проверяемого делителя числа x.
  3. Переменная f используется для хранения результата проверки на простоту числа x.
  4. Если число x меньше 2, то оно не является простым и функция возвращает false.
  5. Если число x равно 2, то оно является простым и функция возвращает true.
  6. Если число x четное, то оно не является простым и функция возвращает false.
  7. Если число x нечетное, то оно может быть простым и функция начинает поиск делителя.
  8. Переменная y инициализируется значением 3.
  9. В цикле while проверяется, является ли текущий делитель y делителем числа x.
  10. Если число x делится на y без остатка, то оно не является простым и функция возвращает false.
  11. Если число x не делится на y без остатка, то текущее значение y увеличивается на 2.
  12. Цикл while продолжается, пока y меньше или равно квадратному корню из числа x и функция возвращает true.
  13. Если число x не является простым, то переменная m инициализируется значением 2.
  14. Если число x равно 2, то переменная m инициализируется значением 3.
  15. Если число x больше 2, то переменная m инициализируется значением x-1.
  16. В цикле while проверяется, является ли текущее значение m простым числом.
  17. Если число m не является простым, то оно увеличивается на 1.
  18. Цикл while продолжается, пока число m не станет простым.
  19. После выхода из цикла while, значение переменной m выводится на экран.
  20. Программа завершается чтением значения из стандартного ввода.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы