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

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

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

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

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

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

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

В этом коде:

  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
Похожие ответы