Hosted by uCoz

Задача № 42. Найти количество простых членов последовательности

Формулировка. Дана последовательность натуральных чисел, ограниченная вводом нуля. Вывести на количество простых членов этой последовательности.

Решение. Принцип решения этой задачи напоминает решения обеих предыдущих задач. При этом алгоритм распознавания простых чисел можно взять из задачи 17, немного изменив его:

s := 0;

for i := 1 to a do begin

  if a mod i = 0 then inc(s)

end;

if s = 2 then inc(count);

Здесь мы предварительно поменяли названия переменных и вместо вывода ответа о простоте числа работаем со счетчиком найденных простых чисел. Напомним, что в цикле считается количество всех возможных натуральных делителей числа, и если их 2, то оно простое, и необходимо увеличить счетчик простых чисел count. Когда вся числовая последовательность будет обработана, останется только вывести на экран значение переменной count.

Код:

  1. program NumOfPrimes;
  2. var
  3. a, i, s, count: word;
  4. begin
  5. read(a);
  6. count := 0;
  7. while a <> 0 do begin
  8. s := 0;
  9. for i := 1 to a do begin
  10. if a mod i = 0 then inc(s)
  11. end;
  12. if s = 2 then inc(count);
  13. read(a)
  14. end;
  15. writeln(count)
  16. end.