Запишите ** естественном языке алгоритм, выполняющий поиск количества простых чисел в...

0 голосов
50 просмотров

Запишите на естественном языке алгоритм, выполняющий поиск количества простых чисел в заданном целочисленном массиве из 50 элементов.
Pascal


Информатика (12 баллов) | 50 просмотров
0

Оп-па! Обнуляем счетчик. Каждое число из массива проверяем на простоту по алгоритму Евклида. Если оно простое, добавляем +1 в счетчик. В конце значение счетчика выводим.

Дан 1 ответ
0 голосов
const N=50;
var a : array [1..N] of boolean;
x,y, sim : integer;
begin 

sim:=0;
a[1] := false;
for x:=2 to N do a[x] := true;
 for x:= 2 to N div 2 do
    for y:= 2 to N div x do
      a[x*y] := false;
 for x:=1 to N do
     if a[x] then sim:=sim+1;
writeln(sim);
end.
(2.7k баллов)
0

а не легче ли найти все простые числа

0

const N=50;
var a : array [1..N] of boolean;
x,y, sim : integer;
begin 

sim:=0;
a[1] := false; 
for x:=2 to N do a[x] := true;
 for x:= 2 to N div 2 do
    for y:= 2 to N div x do
      a[x*y] := false;
 for x:=1 to N do
     if a[x] then writeln(x);
end.

0

так будут все простые числа

0

Все простые найти не легче, потому что эти 50 элементов массива могут содержать значения в весьма большом диапазоне.

0

Поэтому придется найти сначала значение максимального элемента, потом создать массив всех простых чисел в диапазоне от 1 до найденного максимума и для каждого элемента исходного массива проверять, не содержится ли он в массиве простых. Т.е. считать будет быстрее, но код окажется существенно бОльшим.