Сформировать массив с первых n простых чисел натурального числового ряда - C (СИ)

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

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

сформировать массив с первых n простых чисел натурального числового ряда. простым считается число, у которого нет других делителей, кроме 1 и самого себя.

Решение задачи: «Сформировать массив с первых n простых чисел натурального числового ряда»

textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
int Prime(unsigned a, unsigned i)
{
   return i*i <= a ? (a%i) && Prime(a, i + 1) : 1;
}
 
int main()
{
   unsigned *a, n, i = 0, j;
   printf("n = "); scanf("%u", &n);
   a = (unsigned *)malloc(n * sizeof(*a));
   a[i++] = 2;
   for(j = 3; i < n; ++j)
      if (Prime(j, 2))
         a[i++] = j;
   for(i = 0; i < n; ++i)
      printf("%u ", a[i]);
   return 0;
}

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

  1. Подключение необходимых библиотек: iostream.h и stdlib.h
  2. Определение функции Prime(unsigned a, unsigned i), которая проверяет, является ли число a простым. Если число делится на i без остатка, то оно не является простым и функция возвращает 0. Если число не делится на i без остатка, то оно может быть простым и функция рекурсивно вызывает саму себя для числа i+1. Если число не делится ни на одно число от 2 до i, то оно является простым и функция возвращает 1.
  3. В функции main() создается массив a размером n, который будет содержать первые n простых чисел. Значение n считывается с помощью функции scanf().
  4. Выделяется память под массив a с помощью функции malloc().
  5. Первый элемент массива a инициализируется значением 2, так как 2 является первым простым числом.
  6. Далее в цикле от 3 до n-1 (так как 2 уже добавлено в массив) проверяются все числа на простоту с помощью функции Prime(). Если число является простым, оно добавляется в массив a.
  7. После заполнения массива a, все его элементы выводятся на экран с помощью цикла for и функции printf().
  8. В конце программы возвращается 0, что означает успешное выполнение программы.

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


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

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

9   голосов , оценка 4.222 из 5
Похожие ответы