Выдать все простые числа в диапазоне от 2 до N, заполнив массив числами от 2 до N - C (СИ)

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main () {
  5.  const int nmax=100;
  6.  int a[nmax],i,n,k;
  7.  printf ("\nВведите размерность массива от 2 до %d:",nmax);
  8.  scanf ("%d",&n);
  9.  a[0]=0; //1 - не простое число!
  10.  for (i=1; i<n; i++) a[i]=i+1;
  11.  for (k=2; k<=n/2; k++) for (i=0; i<n; i++) if (a[i]!=k && a[i]%k==0) a[i]=0;
  12.  printf ("\nПростые числа: ");
  13.  for (i=0; i<n; i++) if (a[i]!=0) printf ("%d ",a[i]);
  14.  system ("pause");
  15.  return 0;
  16. }

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

В этом коде:

  1. Объявляются переменные:
    • nmax - максимальная размерность массива (100);
    • n - размерность массива, введенная пользователем;
    • a - массив для хранения чисел;
    • i - счётчик для циклов;
    • k - счётчик для циклов.
  2. Пользователю предлагается ввести размерность массива от 2 до 100.
  3. В массиве a инициализируются все элементы значением 1.
  4. В цикле заполняются первые n элементов массива значениями от 1 до n.
  5. В цикле проверяются все числа от 2 до n/2 на делимость на текущий индекс элемента массива. Если число делится без остатка, то текущий элемент массива, равный этому числу, перемножается на 0.
  6. В цикле выводятся все ненулевые элементы массива через пробел.
  7. В конце программы выводится приглашение для нажатия любой клавиши и программа завершается.

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


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

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

9   голосов , оценка 3.556 из 5

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

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

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