Найти близкое наименьшее простое число - 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.
Объяснение кода листинга программы
- Функция
prost
принимает целое числоx
и возвращает логическое значениеtrue
, если числоx
является простым, иfalse
в противном случае. - В функции используется переменная
y
для хранения текущего проверяемого делителя числаx
. - Переменная
f
используется для хранения результата проверки на простоту числаx
. - Если число
x
меньше 2, то оно не является простым и функция возвращаетfalse
. - Если число
x
равно 2, то оно является простым и функция возвращаетtrue
. - Если число
x
четное, то оно не является простым и функция возвращаетfalse
. - Если число
x
нечетное, то оно может быть простым и функция начинает поиск делителя. - Переменная
y
инициализируется значением 3. - В цикле while проверяется, является ли текущий делитель
y
делителем числаx
. - Если число
x
делится наy
без остатка, то оно не является простым и функция возвращаетfalse
. - Если число
x
не делится наy
без остатка, то текущее значениеy
увеличивается на 2. - Цикл while продолжается, пока
y
меньше или равно квадратному корню из числаx
и функция возвращаетtrue
. - Если число
x
не является простым, то переменнаяm
инициализируется значением 2. - Если число
x
равно 2, то переменнаяm
инициализируется значением 3. - Если число
x
больше 2, то переменнаяm
инициализируется значениемx-1
. - В цикле while проверяется, является ли текущее значение
m
простым числом. - Если число
m
не является простым, то оно увеличивается на 1. - Цикл while продолжается, пока число
m
не станет простым. - После выхода из цикла while, значение переменной
m
выводится на экран. - Программа завершается чтением значения из стандартного ввода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д