Найти близкое наименьшее простое число - 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
выводится на экран. - Программа завершается чтением значения из стандартного ввода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д