С применением авторской функции - Pascal ABC
Формулировка задачи:
Составить программу, которая заполняет одномерный массив из 20
элементов случайными целыми числами от 1 до 99, а затем определяет,
сколько в массиве имеется простых чисел (простым числом называется такое,
которое делится только на единицу или само на себя).С применением авторской функции
Решение задачи: «С применением авторской функции»
textual
Листинг программы
program author;
function IsPrime(a: integer): boolean;
var
i, delta: integer;
begin
a := abs(a);
IsPrime := (a > 1) and ((a <= 3) or (a mod 2 <> 0) and (a mod 3 <> 0));
delta := 4;
i := 5;
while (sqr(i) <= a) and IsPrime do
begin
IsPrime := IsPrime and (a mod i <> 0);
delta := delta xor $06; {смена шага - то 2 то 4}
Inc(i, delta);
end;
end;
var
a: array [1..20] of integer;
i: integer;
PrimeCount: integer;
begin
randomize;
for i := 1 to 20 do
begin
a[i] := 1 + random(99);
Write(a[i]: 3);
end;
writeln;
PrimeCount := 0;
for i := 1 to 20 do
if IsPrime(a[i]) then
Inc(PrimeCount);
writeln(PrimeCount);
end.
Объяснение кода листинга программы
- В функции IsPrime определяется, является ли число простым. Функция принимает число a в качестве параметра и возвращает true, если число простое, и false в противном случае. Переменные i, delta и IsPrime инициализируются.
- В основной программе создается массив a[1..20] из 20 чисел. Каждое число в массиве генерируется случайным образом от 1 до 99. Затем каждое число выводится на экран.
- После вывода чисел начинается цикл, который проверяет каждое число в массиве на простоту с помощью функции IsPrime. Если число простое, то его количество увеличивается на 1.
- После завершения цикла выводится количество простых чисел в массиве.