Выдать все простые числа в диапазоне от 2 до N, заполнив массив числами от 2 до N - PascalABC.NET

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

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

Вводится число N(N<=100). Выдать все простые числа в диапазоне от 2 до N, заполнив массив числами от 2 до N, а затем обнулить все кратные 2, затем все кратные 3 и т.д. Необнулённые и будут простыми числами.

Решение задачи: «Выдать все простые числа в диапазоне от 2 до N, заполнив массив числами от 2 до N»

textual
Листинг программы
  1. var a:array [2..100] of integer;
  2.     n, i, f: integer;
  3. begin
  4. repeat
  5. write('Введите натуральное число от 2 до 100 n=');
  6. readln(n);
  7. until n in [2..100];
  8. for i := 2 to n do
  9. a[i] := i;
  10. for f := 2 to trunc(sqrt(n)) do//все возможные делители
  11. for i := f+1 to n do//проверяем то что впереди(эти числа типа 2,3 не трогаем)
  12. if (a[i] mod f = 0) then a[i] := 0;
  13. for i := 2 to n do
  14. if a[i] <> 0 then write(a[i]:4);
  15. end.

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

  1. Объявляется массив a размером от 2 до 100 для хранения чисел
  2. Вводятся три переменные n, i, f типа integer
  3. В цикле repeat, который повторяется до тех пор, пока пользователь не введет число в диапазоне от 2 до 100, происходит следующее: a) Запрашивается у пользователя ввод числа n b) Число n сохраняется в переменную n
  4. В цикле for, который начинается с i=2 и идет до n, каждое число от 2 до n присваивается соответствующему индексу массива a
  5. В цикле for, который начинается с f=2 и идет до корня из n (trunc(sqrt(n))), проверяются все возможные делители числа n a) Цикл for начинается с i=f+1 и идет до n, чтобы не трогать числа типа 2,3 b) Если остаток от деления a[i] на f равен 0, то a[i] присваивается 0, т.е. это число является составным
  6. В цикле for, который начинается с i=2 и идет до n, проверяется каждое число в массиве a a) Если a[i] не равно 0, то это число является простым, и его значение выводится на экран с шагом 4 (например, 4, 8, 12, 16)
  7. Код завершается

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


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

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

15   голосов , оценка 3.933 из 5

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

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

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