Выбрать из последовательности все простые числа методом Эратосфена - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Всем привет. Нужна помощь в написании одной маленькой программы. Нужно выбрать из последовательности все простые числа методом Эратосфена и при этом необходимо в программе использовать множества. Последовательность от 2 до N. N<255. Заранее спасибо.

Решение задачи: «Выбрать из последовательности все простые числа методом Эратосфена»

textual
Листинг программы
  1. uses crt;
  2. const n=255;
  3. var n1, next, i : integer;
  4.     BeginSet, PrimerSet:set of 1 .. N;
  5. begin
  6. clrscr;
  7. BeginSet:=[2..n];  { начальное множество }
  8. PrimerSet:=[2];  { это множество простых чисел,  в нём первое простое число 1}
  9. next:=2; {следующее простое }
  10. while BeginSet <> [] do
  11.  begin
  12.   n1:=next;
  13.  { исключаем все числа кратные next }
  14.   while n1<=n do
  15.    begin
  16.       Exclude(BeginSet,n1);
  17.       n1:=n1+next
  18.    end;
  19.  { включаем next в множество }
  20.   Include (PrimerSet, next);
  21.  {получаем в next следующее простое, которое есть первое в BeginSet}
  22.   repeat
  23.    next:=next+1
  24.   until (next in BeginSet) or (next >n)
  25.  end;
  26. for i:=1 to N do
  27. if i in PrimerSet then
  28. write (i:4);
  29. readln
  30. end.

Объяснение кода листинга программы

Данный код написан на языке Turbo Pascal и решает задачу выбора всех простых чисел из последовательности методом Эратосфена. В начале кода объявляются необходимые переменные: n - максимальное число в последовательности, BeginSet - множество, в котором находятся числа, PrimerSet - множество, содержащее простые числа. Далее происходит инициализация BeginSet и PrimerSet: BeginSet устанавливается в диапазон от 2 до n, а PrimerSet устанавливается в начало этого диапазона (так как первым простым числом является число 1). Затем в цикле while происходит обработка чисел из BeginSet. Для каждого числа n1, которое находится в BeginSet, происходит проверка на кратность следующему простому числу next. Если число n1 кратно next, то оно исключается из BeginSet. Затем next увеличивается на 1 и включается в PrimerSet. Это продолжается до тех пор, пока next не станет больше n или не окажется в BeginSet. После этого в цикле for происходит вывод всех чисел из PrimerSet на экран. Код завершается вызовом readln для чтения последнего числа, введенного пользователем, и выходом из программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы