Вычислить сколько простых чисел в диапазоне от 1 до 100. Написать функцию для определения простого числа - Pascal
Формулировка задачи:
Вычислить сколько простых чисел в диапазоне от 1 до 100. Написать функцию для определения простого числа. Простое число делиться на себя и на 1
Решение задачи: «Вычислить сколько простых чисел в диапазоне от 1 до 100. Написать функцию для определения простого числа»
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 i,k:integer;
begin
k:=0;
for i:=1 to 100 do
if prost(i) then
begin
write(i,' ');
k:=k+1;
end;
writeln;
write('Количество простых чисел на интервале 1-100 = ',k)
end.
Объяснение кода листинга программы
- Объявляется функция с именем
prost, которая принимает один аргументxтипа целое число и возвращает значение типа boolean. - Объявляется переменная
yтипа целое число и переменнаяfтипа boolean. - Начало определения функции
prost:- Присваивается значение модуля аргумента
xпеременнойx. - Проверяется условие: если
xменьше 2, то переменнойfприсваивается значениеfalse(0 и 1 не являются простыми числами). - Иначе, если
xравно 2, переменнойfприсваивается значениеtrue(так как 2 является простым числом). - Иначе, если
xделится на 2 без остатка, переменнойfприсваивается значениеfalse(так как четные числа больше 2 не являются простыми). - Иначе:
- Присваивается переменной
fзначениеtrue. - Присваивается переменной
yзначение 3. - В цикле while проверяется условие:
y * yменьше или равноxиf = true. - Если
xделится наyбез остатка, переменнойfприсваивается значениеfalse. - Иначе прибавляется 2 к переменной
y.
- Присваивается переменной
- Присваивается значение модуля аргумента
- Конец определения функции
prost. - Объявляются переменные
iиkтипа целое число. - Начало основной программы:
- Присваивается переменной
kзначение 0. - В цикле от 1 до 100 выполняются проверки вызова функции
prostдля текущего значенияi:- Если
prost(i)возвращаетtrue, то значениеiвыводится. - При этом переменной
kувеличивается на 1.
- Если
- Отдельно выводится количество простых чисел на интервале 1-100.
- Присваивается переменной